On Thu, 28 Oct 1999, Fons Rademakers wrote: > this is called a destructor which can be explicitely called like: > > obj->~TObject(); Hm, yes, as long as there is no need for different actions between really deleting an object and just "clearing" it so it can be used again by a Streamer for input. Take the case of a class containing a pointer to a TClonesArray: class A : public TObject { public: A() { _array= new TClonesArray( "bla", 50 ); } virtual ~A() { delete _array; } virtual Clear() { _array->Clear(); } private: UInt_t _nent; // Number of entries in _array TClonesArray* _array; // Array of objects of type bla ClassDef(A,1) } I don't want a static pointer to TClonesArray, because I want to have several instances of A each holding a TClonesArray for IO of several lists of objects called "bla". Before reading a new entry, I want to clear the TClonesArray's, but at the end of reading the tree I may want to really delete the As, including their TClonesArray's. Thus, I think there is a case for having a separate virtual function "Clear()" to allow for clearing instead of deleting; if you accept the idea of reusing top level objects in branches that is. cheers, Stefan ---Stefan Kluth---------------Lynen Fellow----------------|\--|\------- - LBNL, MS 50A 2160 - phone: +1 510 495 2376 - |/ |/ - - 1 Cyclotron Rd. - fax: +1 510 495 2957 - |\/\|\/\|' - ---Berkeley, CA94720, USA-----e-mail: SKluth@lbl.gov------|/\/|/\/|----
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:41 MET