Re: [ROOT] create and read global variables

From: Radovan CHYTRACEK (Radovan.Chytracek@cern.ch)
Date: Wed May 16 2001 - 12:45:48 MEST


Christian Doerr wrote:
> 
> Hello everybody,
> 
> I just started using root - and I'm also new to this mailing list -  so
> maybe the solution to my problem is trivial.
> 
> I want to create a class object (class TMyList) in a
> first macro  named TEvent.C  as global variable gList and then use/read
> it again from a second macro:
> 
> root[1] .L TEvent.C
> root[2] InitList();
> root[3] .g
> 
> ....
> TEvent.C        294 0x868e360  TMyList gList , size=8
> ....
> 
> root[4]
> 
> How can I access gList again from another macro?

Here it follows:

------------------------------ cut here InitGlobal.cpp
-------------------------------
#include <iostream>

class A
{
  public:
      A(){}
      ~A(){}
      void Show() { std::cout << "This is object of class A" << std::endl;
} 
};

A gAobject;

void InitGlobal()
{
  std::cout << "Global object of A initialized..." << std::endl;
}
------------------------------ cut here InitGlobal.cpp
-------------------------------

------------------------------ cut here UseGlobal.cpp
-------------------------------
extern A gAobject;

void UseGlobal()
{
  std::cout << "Trying to use the global object of class A" << std::endl;
  
  gAobject.Show();
}
------------------------------ cut here UseGlobal.cpp
-------------------------------

In ROOT type:

.x InitGlobal.cpp
.x UseGlobal.cpp

you should get:

root [0] .x InitGlobal.cpp 
Global object of A initialized...
root [1] .x UseGlobal.cpp  
Trying to use the global object of class A
This is object of class A

Hope this helps

Radovan




This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:45 MET