Hi Nick,
The compilation error comes from the fact that TCollections (including THashTable)
can not be used any copy constructor.
Also C++ and CINT, provide a default constructor when there is none declared.
In your case the default constructor provided by cint has to contain the line:
> p=new Test(*(Test*)G__int(libp->para[0]));
I am not sure why but somehow your compiler decided not to provided any copy
constructor in this case (probably because it would be illegal any way) and thus
see only a constructor with no parameter (the one you specify) thus the error message:
> cxx: Error: TestCint.cc, line 130: In this statement, "(*(Test ...)G__int(libp->
> para[0]))" supplies 1 argument, but 0 are expected.
The compiler KCC, for the same code fails and says:
"TCollection::TCollection(const TCollection &)" is inaccessible
class THashTable : public TCollection {
^
detected during:
implicit generation of "THashTable::THashTable(const THashTable &)"
at line 130
implicit generation of "Test::Test(const Test &)" at line 130
The solution is for you to provide a copy constructor for your class.
(actually even if you use a pointer to a THashTable you probably should
provide this copy constructor to remove any ambiguity on which object should
delete the THashTable).
Philippe Canal
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:44 MET