Hi Xavier, In general, with CINT you could not create an interpreted class deriving from a precompiled class. Mixing the virtual table of pointers between CINT and the compiler is highly machine and compiler dependent. In the latest version of CINT 5.14.45 part of Root 2.25/01 released yesterday there is some progress in this area. The CINT release notes say: "- True virtual function resolution in mixed interpreted/precompiled-class environment is supported by STUB. Base class and interface of derived class have to be precompiled and derived class member function can be interpreted. Please find example in demo/makecint/Stub2 directory." and when you run your example with the new version of Root, you get the following warning: root [0] .L MyClass.C Warning: precompiled class TNamed inherited from interpreted class TMyClass FILE:MyClass.C LINE:1 There are some limitations regarding compiled/interpreted class inheritance We intend to make use of this new CINT facility in the Root environment and release the current restriction when creating branches of a Tree in a future version of Root. Rene Brun GENTIT Francois-Xavier DAPNIA wrote: > > Dear Rooters, > If I define the following file "MyClass.C" : > > class TMyClass : public TNamed { > public: > Int_t fRun; //run number > TRunResults() { ; } > TRunResults(Text_t *,Text_t *); > }; > TMyClass::TMyClass(Text_t *name,Text_t *title):TNamed(name,title) > { > fRun = 0; > } > > and the following file "testa.C" : > > { > TTree *tree = new TTree("T","Tree for GLAST"); > TMyClass *p; > p = new TMyClass("runstat","runstat"); > tree->Branch("RunBranch","TMyClass",&p,64000,1); > } > > and if I do : > > root[0]> .L MyClass.C > root[1]> .x testa.C > > I get the error message, after the line tree->Branch(...) : > > Error in <TTree::BranchObject>: Cannot find class:TMyClass > > Is it so that one cannot use class defined in CINT, but only compiled class > in a branch ? > I am using ROOT 2.25 on Windows NT. Thanks very much for your help. > > F.X. Gentit > DAPNIA/SPP CEN Saclay > tel : 01 69 08 30 38 fax : 01 69 08 64 28 > web : http://home.cern.ch/~gentit/ > <<MyClass.C>> <<testa.C>> > > -------------------------------------------------------------------------------- > > MyClass.C Name: MyClass.C > Type: unspecified type (application/octet-stream) > > testa.C Name: testa.C > Type: unspecified type (application/octet-stream)
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:31 MET