Hi, As reported by the MayNotUse function, you should not use the functions Add in the case of a TClonesArray, but directly the operator new with placement as shown in the TClonesArray class description, or the example in $ROOTSYS/test/Event.cxx (see AddTrack), eg: new(a[i]) Track(x,y,z) Rene Brun On Wed, 13 Aug 2003, Yiqun Wang wrote: > Hi, Rooters: > > I am using root cvs version, compiled on a Mandrake 9.1 (custom kernel). > > I have the following questions on TClonesArray: > > 1. If I do: > > root [0] TClonesArray *arr = new TClonesArray("TObject", 10); > root [1] TObject a[10]; > root [2] arr->Add(&a[0]); > > I will get: > > root [2] arr->Add(&a[0]); > Warning in <TClonesArray::AddLast>: may not use this method > root [3] > > In fact, none of those "Add" functions will work. When I search the > document (the source header file), I found out all of them are defined as: > > { MayNotUse("AddLast"); } > > or something similar. > > I suppose that I should not add an element that way. What is the correct > way then? Dynamically allocated the element (as in the class description)? > Suppose that I do not want to do that, then what? > > 2. In addition to find out a way of adding an element, I would suggest > that more comments be add, an very short example in the document (class > description). > > 3. The above commands work for "TObjArray". Since "TClonesArray" inherits > from "TObjArray", I think a little clarification (or warning) is in order. > > > Yiqun Wang > >
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET