Re: [ROOT] Destructor problem

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Apr 03 2002 - 12:24:37 MEST


Hi Simon,

In general, Use the form
        delete inheritedclass;

If your class is a ROOT collection, like TList, TObjArray, you can do:
   mycollection->Delete(); //to delete all objects in the collection;
   delete mycollection;    // to delete the empty collection.

Note that if the collection has been declared to be the owner with
   mycollection->SetOwner();
it is sufficient to do:
   delete mycollection; //all owned objects will be automatically deleted.

See also the chapter on Object Ownership in the Users Guide.

Rene Brun


Simon Dean wrote:
> 
> Hi there,
> 
> Could someone please explain to me the subtle nuances of destructors in
> classes which inherit from TObject? I'm having problems with crashes
> caused by such destructors, although I think the problem may be due to
> delete statements inside them which refer to other classes that inherit
> from TObject.
> 
> What is TObject->Delete() and what is it used for? Would I do:
> 
>         delete inheritedclass
> or
>         inheritedclass->Delete()
> 
> for cleaning up memory.
> 
> cheers,
> 
> Simon



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:47 MET