Hi rooters, I apologize in advance for my stupid question: I'm very new either in ROOT and in C++ and I'm myself surprised already how far I could nevertheless move... I've defined my "Event" class, which contains (among the others) a TClonesArray of the class "DataCh", which I also defined and implemented. The class "Event" has a GetDataCh() function, which simply returns the pointer to the TClonesArray member: ------------------------------------------ class Event: public TObject { private: (...) TClonesArray *fDataCh; (...) public: (...) TClonesArray *GetDataCh() const {return fDataCh;} (...) }; -------------------------------------------- In the constructor of the Event class, the TClonesArray is created as follows (I used the "Event.cxx" in the test directory as a model): -------------------------------------------- if(!fgDataChs) fgDataChs=new TClonesArray("DataCh",32); fDataCh=fgDataChs; -------------------------------------------- Now, since I want to make sure I'm correctly filling my objects, I would like to get the data members of the single array elements of "fDataCh". Hence in my 'main' I wrote: -------------------------------------------- (...) TClonesArray *gino=new TClonesArray("DataCh",32); //I create a "copy" array gino=event->GetDataCh(); //I assign the copy to the actual member of 'event' (...) DataCh dino = *(gino+i); //I try to assign the 'ith' element to a DataCh object (...) -------------------------------------------- At compile time I get the following error message for the last command: "cannot convert `TClonesArray' to `DataCh' in initialization" from which I understand I could have casting problems... Why can't I access directly the elements of my TClonesArray, which has been defined to contain "DataCh" objects? What's the right way to pick up and copy a single object in a TClonesArray? Thank you very much for the help... Best regards, Dario Motta
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:43 MET