Hallo, sorry, it's me again, but I don't understand the following behaviour: I have written these files: ---- EMModule.hh #ifndef _EMModule_H_ #define _EMModule_H_ #ifdef GNUPRAGMA #pragma interface #endif #ifdef ROOTCINT # include "TVector3.h" #endif class EMModule: public TVector3 { private: Float_t size; public: EMModule(); EMModule(Float_t x, Float_t y, Float_t z, Float_t s); EMModule(TVector3 x, Float_t s); ~EMModule(); Float_t Size(); #ifdef ROOTCINT ClassDef(EMModule,1) #endif }; #endif ---- EMModule.cc #ifdef GNUPRAGMA #pragma implementation #endif #include "EMModule.hh" #ifdef ROOTCINT ClassImp(EMModule) #endif // member functions for EMModule EMModule::EMModule() : TVector3() { cout << "Warning: default constructor for EMModule called." << endl; size = 0.; } EMModule::EMModule(Float_t x, Float_t y, Float_t z, Float_t s) : TVector3(x,y,z) { size = s; } EMModule::EMModule(TVector3 x, Float_t s) : TVector3(x) { size = s; } EMModule::~EMModule() : {} EMModule::Size() { return size; } ---- Then I did: root [0] .L EMModule.cc root [1] EMModule x3(1,2,3,4) root [2] cout << x3(1) << endl; 2 After that I tried to reload the file (as I understood this should work): root [3] .L EMModule.cc root [4] Ok, this was alright. Then I did (with a restarted root): root [0] .L EMModule.cc root [1] TVector3 y(1,2,3) root [2] EMModule x3(y,4); root [3] cout << x3(1) << endl; 2 root [4] .L EMModule.cc *** Break *** segmentation violation Root > Strange, but here is the next try: root [0] .L EMModule.cc root [1] TVector3 *y = new TVector3(1,2,3) root [2] EMModule x3(y,4); root [3] cout << x3(1) << endl; 2 root [4] .L EMModule.cc root [5] This again works ... The effect is reproduceable. In general I saw this behaviour in many macros I wrote, everytime when using declarations like TH1F test("test",...) When using the pointer version TH1F *test = new TH1F(...) reloading of files works without problems. Is there anything I missed? Best regards, Volker -- Volker Hejny Tel: 02461/616853 ** Institut f. Kernphysik Fax: 02461/613930 ** ---------------------------------------------------------------- ** ** --- Forschungszentrum Juelich GmbH, D-52425 Juelich **
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:38 MET