Hi everyone, I am having a problem with operator= and CINT. I have a simple class that inherits from TNamed and has two protected data members, like so: class THaRun : public TNamed { protected: UInt_t fNumber; //Run number TString fFilename; //File name public: THaRun(); THaRun( UInt_t number, const char* filename ); THaRun( UInt_t number, const char* filename, const char* description ); virtual ~THaRun(); ... }; I don't provide an explicit operator= because default memberwise assignment should be fine. Now, under CINT I try this: [1] THaRun r1(100,"/data/run100.dat","Run 100") [2] THaRun r2 [3] r2 = r1 (class TNamed)139424976 Oops! If I now inspect the object r2, only the TNamed part has been copied and the data members of the THaRun part are zero/empty. If I compile these statements (Linux/egcs-1.1), it works as expected, i.e. "r2 = r1" copies all data members of THaRun. I am using ROOT 2.23/12 with CINT 5.14.25. Is this a limitation of CINT? Cheers, Ole
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:25 MET