Hi ROOT'ers, I know this question has been raised before, (see roottalk entry http://root.cern.ch/root/roottalk/roottalk00/1440.html) but it didn't seem like there was much ado, so I thought I'd raise some. It seems that the interactive ROOT (or CINT!?) has some problem with the 0 pointer as argument where it expects an object pointer. It complains about missing method or bad arguments, as if 0L isn't a valid pointer for _any_ class! As far as I can gather from the ANSI/ISO C++ standard section 4.10, 0L is a valid pointer for _any_ class, and should automatically be converted to the prober class pointer. I first got aware of this problem when I used g2root to get a detector definition. I've abstracted the basic code below: ******************************************* * * * W E L C O M E to R O O T * * * * Version 2.24/04 5 May 2000 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* Compiled with thread support. CINT/ROOT C/C++ Interpreter version 5.14.37, Apr 29 2000 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] TMaterial* mat = new TMaterial("mat","mat", 1, 1, 1); root [1] TBRIK* brik = new TBRIK("brik","brik", "mat", 1, 1, 1) root [2] TNode* node = new TNode("node","node", brik,0,0,0,0) Error: Can't call TNode::TNode("node","node",brik,0,0,0,0) in current scope FILE:/tmp/filetzcH8z_cint LINE:1 Possible candidates are... filename line:size busy function type and name (in TNode) (compiled) 0:0 0 public: TNode TNode(void); (compiled) 0:0 0 public: TNode TNode(const char* name,const char* title,const char* shapename,Double_t x=0,Double_t y=0,Double_t z=0,const char* matrixname,Option_t* option); (compiled) 0:0 0 public: TNode TNode(const char* name,const char* title,TShape* shape,Double_t x=0,Double_t y=0,Double_t z=0,TRotMatrix* matrix=0,Option_t* option); (compiled) 0:0 0 public: TNode TNode(TNode&); filename line:size busy function type and name (in TNamed) filename line:size busy function type and name (in TObject) filename line:size busy function type and name (in TAttLine) filename line:size busy function type and name (in TAttFill) filename line:size busy function type and name (in TAtt3D) *** Interpreter error recovered *** root [3] This is on a Pentium III, running Redhat Linux 6.1. The ROOT distribution is the standard one from ftp://root.cern.ch/root/root_v2.24.Linux.2.2.14.tar.gz (no patches). If this has been fixed in 2.24.05, sorry to bother you with this. Cheers, Christian ----------------------------------------------------------- Holm Christensen Phone: (+45) 35 35 96 91 Sankt Hansgade 23, 1. th. Office: (+45) 353 25 305 DK-2200 Copenhagen N Web: www.nbi.dk/~cholm Denmark Email: cholm@nbi.dk
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:25 MET