Hi Guido,
Without more information I would say that the constructor:
RootDBField(string name);
is not known to CINT and that the following would work
PixLib::RootDBField rf("prova",0);
Cheers,
Philippe
PS. you did not specify the version of ROOT you are using.
-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Guido Gagliardi
Sent: Thursday, May 13, 2004 11:49 AM
To: roottalk@cern.ch
Subject: [ROOT] problem with constructors of user defined classes
Hi ,
i have a problem in calling from the interactive session of ROOT the
non-default constructors of my user defined classes.
I have a class with the constructor:
RootDBField(string name);
into a namespace PixLib;
If i type in the interactive session:
PixLib::RootDBField r("test")
i get the error:
root [5] PixLib::RootDBField rf("prova")
Error: Can't call RootDBField::RootDBField("prova") in current
scope:1le) LINE
Possible candidates are...
Error: class,struct,union or type RootDBField not defined
FILE:(tmpfile) LINE:1
filename line:size busy function type and name
*** Interpreter error recovered ***
however, if i get the longer way:
root [2] std::string * s = new std::string("prova")
root [3] PixLib::RootDBField* r = new PixLib::RootDBField(*s,0)
the object is correctly instantiated, and i can use it
Where is my error?
(note that also:
std::string s("prova")
do not works, and give the same kind of error "Can't call....")
Thank you
Guido
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET