Dear Rooters For my GUI I have the following main class: class TMyFrame { RQ_OBJECT() private: TGMainFrame *fMain; TGCompositeFrame *fFrame; TGMenuBar *fMenuBar; TGPopupMenu *fMenuFile; etc // Parameters TList *fList; TString fDir; etc public: TMyFrame(const TGWindow *vWindow, UInt_t vWidth, UInt_t vHeight); virtual TMyFrame(); etc void FRun(); }; I have the following code fragment in the code FRun() for a menu item, which I can write in several ways: cout << "Directory: " << fDir << endl; //ok TString vName; TObjString *vObj; //or: TObjString *vObj = new TObjString(); TIter next(fList); //or: TListIter next(fList); while (vObj = (TObjString*)next()) { //or: while (vObj = (TObjString*)next.Next()) { vName = TString(vObj->GetName()); cout << "vName: " << vName << endl; }//while cout << "Directory: " << fDir << endl; //Error: No symbol fDir!! next.Reset(); while (vObj = (TObjString*)next()) { vName = TString(vObj->GetName()); cout << "Name: " << vName << endl; }//while 1, It is not quite clear to me why I can write "(TObjString*)next()" instead of "(TObjString*)next.Next()". Which way is better? 2, Is it enough to define "vObj" or ist it better to create it? 3, When should I use TListIter instead of TIter? 4, When I replace "vObj->GetName()" with "vObj->GetString()" in lines 7 and 15, the second while loop is no longer able to print the correct name. Why is this the case? 5, In the first line the directory fDir is printed correctly, however, in line 11 root prints the following error: "Error: No symbol fDir in current scope" However, this happens only when fList has more than one item!! Somehow, iterating fList using "while(..)" seems to scramble the memory. Can somone tell me what kind of mistake is in this part of the code? Thank you in advance. Best regards Christian ---------------------------------- C.h.r.i.s.t.i.a.n S.t.r.a.t.o.w.a V.i.e.n.n.a, A.u.s.t.r.i.a
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:58 MET