Philippe, below are the informations (please notice that it works fine
with integer and fails with boolean),
thanks,
Mathieu
g++ -O3 -Wall -fPIC -pthread -I$ROOTSYS/include -Iinclude -c -o src/Base.o src/Base.cc
rootcint -f src/BaseDictionary.cc -c -Iinclude Base.hh
g++ -O3 -Wall -fPIC -pthread -I$ROOTSYS/include -Iinclude -c -o src/BaseDictionary.o src/BaseDictionary.cc
g++ -shared -O src/Base.o src/BaseDictionary.o -o lib/libbase.so
and then in an interactive root session:
.L lib/libbase.so
Base a
a.PrintMsg("") // --> output: y = 1 , x = 1
a.x=0
a.y=0
a.PrintMsg("") // --> output: y = 1 , x = 0
include/Base.hh:
#ifndef __Base__
#define __Base__
#include <iostream>
#include "TString.h"
class Base {
public:
Base() {;}
virtual ~Base() {;}
static bool y;
static int x;
void PrintMsg(TString msg);
ClassDef(Base,0)
};
#endif // __Base__
src/Base.cc:
#include "Base.hh"
using namespace std;
ClassImp(Base)
bool Base::y = true;
int Base::x = 1;
void Base::PrintMsg(TString msg) {
cerr<<"y = "<<y<<" , x = "<<x<<endl;
cerr << msg << '\n';
};
On Thu, 28 Oct 2004, Philippe Canal wrote:
> Hi,
>
> There is not information to know what's going on. In particular is A::M
> inlined or not?
> Please send a example with enough information to reproduce the problem.
>
> Cheers,
> Philippe.
>
> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]
> On Behalf Of ribordy
> Sent: Thursday, October 28, 2004 5:49 AM
> To: roottalk@cern.ch
> Subject: [ROOT] static member in interactive session
>
> Hi rooters,
> I'm not sure what's wrong with that:
> I have a class A with a public bool static member f. I generate a dictionary
> and use it in an interactive session. There is a method M() printing the
> value of f.
>
> In the interactive session, I simply do:
>
> A a; a.M(); --> print f=true (that's how I initialized it) a.f=false; a.M();
> --> print f=true (shouldn't it be false ?)
>
> of course, this problem disappears when f is not declared as a static
> member.
>
> thanks,
> Mathieu
>
>
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET