Re: gPad

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Tue Feb 29 2000 - 15:03:41 MET


Hi Alexander,

   you are right and of course I thought about putting the globals
(gPad, fFile, gDirectory) as static member of their respective classes.
First I thought about typing economics, typing Pad() at the command line
instead of TVirtualPad::Pad() makes a difference. However, thanks to a
later deviced CINT "trick" I can still allow users to type gPad and
so now there is no econimics reason anymore I will make them static methods. 

Cheers, Fons.


On Tue, Feb 29, 2000 at 10:28:38AM +0100, Alexnder Zvyagin wrote:
> Hi,
> 
> >    in the current version gPad is actually a function with the name Pad().
> > So you can use if (Pad())... However, due to possible name clashes with
> > other global functions from other libraries we've changed Pad() to R__Pad()
> > in the coming release. So, use Pad() now and change to R__Pad() when you 
> > get the next release.
> > 
> > Cheers, Fons.
> 
> It seems that static method of class TPad will be good here, something 
> like this:
> 
> class TPad : public TVirtualPad
> {
>  ....
>  public:
>    static TPad * Pad(void);  // or another, better name of this method
>  ....
> };
> 
> And user have to use TPad::Pad() instead of gPad.
> The benefits are
> 1) this is good C++/OO construction (global property of the class)
> 2) it does not pollute global namespace.
> 
> What do you think about replacing ALL global
> ROOT variables (gDirectory, gFile, ...) by static methods of theirs
> classes:   TDirectory::Dir(), TFile::File(), ...
> 
> Of course this is not necessary. But if this thing (using static methods
> of classes instead of global variables) will be intoduced, ROOT code will
> be more flexible (for such modifications like supporting threads).
> 
> P.S. Please remember, moving all ROOT classes in ROOT namespace will
> eliminate problem with
> "name clashes with  other global functions from other libraries"
> 
> With best wishes,
> Alexander Zvyagin.

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7677910



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