Re: [ROOT] Delete Object

From: Frankland John (frankland@ganil.fr)
Date: Mon Jul 07 2003 - 23:21:58 MEST


Dear Victor,

Sorry to disagree, but try the following if you will :

root [0] TNamed vic("vic","Victor object")
root [1] vic.Print()
OBJ: TNamed     vic     Victor object
root [2] vic.Delete()
root [3] vic.Print()
Error: Symbol vic is not defined in current scope  FILE:(tmpfile) LINE:1
Error: Failed to evaluate vic.Print()Possible candidates are...
filename       line:size busy function type and name
*** Interpreter error recovered ***

And while you're at it, look at the description of the TObject::Delete 
method
which you will find here : 
http://root.cern.ch/root/html/TObject.html#TObject:Delete

All the best,
John

Victor Perevoztchikov wrote:

> > for ROOT objects on the stack (pippo is made by MakeClass, so will 
> inherit
> > from TSelector (??)) you can use the Delete method, i.e. you can do
>
> The stack objects can not be deleted by user at all. They are deleted 
> automatically
> by CINT or C++, when they are out of scope.
>  
> Victor
> Victor M. Perevoztchikov   perev@bnl.gov <mailto:perev@bnl.gov>        
> Brookhaven National Laboratory MS 510A PO Box 5000 Upton NY 11973-5000
> tel office : 631-344-7894; fax 631-344-4206;
>
>     ----- Original Message -----
>     *From:* Frankland John <mailto:frankland@ganil.fr>
>     *To:* Kurt Rinnert <mailto:rinnert@ekp.physik.uni-karlsruhe.de>
>     *Cc:* Attilio Santocchia <mailto:attilio.santocchia@pg.infn.it> ;
>     roottalk@pcroot.cern.ch <mailto:roottalk@pcroot.cern.ch>
>     *Sent:* Friday, July 04, 2003 1:00 AM
>     *Subject:* Re: [ROOT] Delete Object
>
>     Hi Attilio and Kurt
>
>     for ROOT objects on the stack (pippo is made by MakeClass, so will
>     inherit
>     from TSelector (??)) you can use the Delete method, i.e. you can do
>
>     pippo.Delete()
>
>     Hope this helps
>
>     John Frankland
>
>     Kurt Rinnert wrote:
>
>>Hi Attilio,
>>
>>this is a C++ issue: by doing 
>>
>>root [6] pippo ppp
>>
>>you are creating the object on the stack. It will be destroyed 
>>automatically when it goes out of scope (at least in compiled code...). 
>>
>>Operator delete works on pointers to objects you created on the heap
>>with operator new, i.e.
>>
>>root [6] pippo* ppp = new pippo()
>>root [7] delete ppp
>>
>>works.
>>
>>cheers,
>>	Kurt
>>
>>On Thu, Jul 03, 2003 at 11:02:14AM +0200, Attilio Santocchia wrote:
>>  
>>
>>>Hello Everybody
>>>very simple question:
>>>I have a tree named h1100
>>>I got an error when I try to delete an oblect using the folling command:
>>>
>>>root [4] h1100->MakeClass("pippo")
>>>Info in <TTreePlayer::MakeClass>: Files: pippo.h and pippo.C generated from
>>>Tree: h1100
>>>(Int_t)0
>>>root [5] .L pippo.C
>>>root [6] pippo ppp
>>>root [7] delete ppp
>>>Error: ppp cannot delete FILE:/tmp/fileMKp30F_cint LINE:1
>>>*** Interpreter error recovered ***
>>>root [8]
>>>
>>>What's the right command to delete the ppp object of the class pippo?
>>>
>>>Cheers
>>>
>>>Attilio
>>>    
>>>
>>
>>  
>>
>
>
>-- 
>John D. Frankland
>Beam Coordinator
>GANIL
>B.P. 55027
>14076 CAEN Cedex 05
>
>tel: +33 (0)231454628
>fax: +33 (0)231454665
>    
>
>


-- 

ganil logo <http://www.ganil.fr>
John D. Frankland <mailto:frankland@ganil.fr>
Beam Coordinator
GANIL
B.P. 55027
14076 CAEN Cedex 05

*tel:* +33 (0)231454628
*fax:* +33 (0)231454665



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET