RE:Re: Base class method

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Thu Nov 25 1999 - 13:02:03 MET


Dear Victor,

As far as I can think, there is no fancy solution. As a workaround,
we could add something like TObjectGetname() in TNamed.

  class TNamed : public TObject {
    public:
      ...
      TString Getname() const;
      TString TObjectGetname() const { return(TObject::Getname()); }
      ...
  };

Could this be your solution?

Thank you
Masaharu Goto

>Dear Masaharu,
>> Dictionary size is already too big. I think it is better not doing
>> about change.
>
>I agree, that it is too much to increase already big dictionary.
>I was asking really about workaround. But it is probably too complicated.
>Actually I need it only for Streamer() but even for this only it is too much
>
>I tried to find workaround in C++ but also failed.
>
>In plain g++ i found
>
>   TNamed tm("AAA","BBB")
>
>   tm.TObject::Getname(); //gives "TNamed" which is correct
>   but
>
>   char *(TNamed::gn)();
>   gn = &TNamed::TObject::Getname;
>   (tm.*gn)();             //gives "AAA"  which is wrong
>
>Thank you,
>Victor



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:43 MET