[ROOT] namespace problem

From: thorsten glebe (glebe@mpi-hd.mpg.de)
Date: Tue Nov 21 2000 - 16:57:10 MET


Hello,

I have a problem using namespace. If I define two classes
(MyClass, MyLeaf) inside a namespace (e.g. namespace TG),
with MyLeaf inherited from MyClass, and MyClass inherited from TObject,
then root forgets that MyLeaf is inherited from TObject, too.

MyLeaf looks fine with the .class command, but using
the ClassDraw() command, MyLeaf looks like a base class.
Even worse, when trying to save a MyLeaf Object-Pointer
in a TClonesArray I get the following error:

Error in <TClonesArray::TClonesArray>: TG::MyLeaf does not inherit
from TObject

I am using root version 2.25.03.

Is there a solution to this problem?

Goodbye,
  Thorsten


Code: (MyClass.hh)

#include <TObject.h>

namespace TG {

  class MyClass : public std::TObject {
  public:
    MyClass();

    int Loop();

    ClassDef(MyClass,1)
  };


  class MyLeaf : public MyClass {
  public:
    MyLeaf();
    int print();

    ClassDef(MyLeaf,1)
  };
} // end of namespace


MyClass.C:

#include <iostream>
#include "MyClass.hh"

namespace TG {

  MyClass::MyClass() {
    std::cout << " MyClass constructor" << endl;
  }

  int MyClass::Loop() {
    cout << " Myclass loop " << endl;
    return 0;
  }

  ClassImp(MyClass)

  MyLeaf::MyLeaf() {
    std::cout << " MyLeaf constructor" << endl;
  }

  int MyLeaf::print() {
    cout << " MyLeaf loop " << endl;
    return 0;
  }

  ClassImp(MyLeaf)

}


LinkDef.h:

#ifdef __CINT__

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ nestedclasses;
#pragma link C++ nestedtypedefs;

#pragma link C++ namespace TG;
#pragma link C++ class TG::MyClass;
#pragma link C++ class TG::MyLeaf;
#endif


----------------------------------------------------
Dr. Thorsten Glebe    <Thorsten.Glebe@mpi-hd.mpg.de>

        Max-Planck-Institut fuer Kernphysik

Saupfercheckweg 1                 Tel: 06221/516-631
D-69117 Heidelberg                Fax: 06221/516-603
----------------------------------------------------



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:37 MET