Hi all, I am trying to construct two classes for analyzing items in shopping baskets (non-physics application - but I used to be a physicist, really!) These are below (I'm not a native C++ programmer, my world revolves around C): class TLogItem : public TObject { private: TObjString *fUPC; Int_t fSales; public: TLogItem(); TLogItem(char *upc, Int_t sales); virtual ~TLogItem(); const char *Upc() const {return fUPC->GetName();} Int_t Sales() const {return fSales;} ClassDef(TLogItem,1) //TLogItem structure }; class TLog : public TObject { private: Int_t fKey; Int_t fDateTime; Bool_t fValid; Int_t fGrossPos; Int_t fGrossNeg; Int_t fNitem; TClonesArray *fItems; static TClonesArray *fgItems; public: TLog(); virtual ~TLog(); void SetHeader(Int_t key, Int_t time, Int_t gross_pos, Int_t gross_neg); void AddItem(char *upc, Int_t sales); void Clear(Option_t *option = ""); Bool_t IsValid() const {return fValid;} TClonesArray *Items() const {return fItems;} Int_t TLogId() const {return fKey;} Int_t DateTime() const {return fDateTime;} ClassDef(TLog,1) //TLog structure }; Notice the use of TObjArray in the first class, and TClonesArray in the second class. The constructor for TLogItem initializes member fUPC, if it doesn't exist. The problem is when I write to a root file (after defining a tree, ...) I get the following error message after the first bucket is written to disk: Warning in <TBranchClones::BranchClones>: Cannot process: TLogItem::fUPC When I read back from the root file, the member fSales is correct, but fUPC is always ''. I think this has something to do with being unable to stream the TObjString to file. What am I doing wrong? - Mike Beddo
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:43 MET