Library

Frederic MACHEFERT (machefer@hep.saclay.cea.fr)
Fri, 29 Jan 1999 09:41:09 +0100 (MET)


Hello,

I try to create a shared library containing several personal classes and I
have some problems including a class which is supposed to manage
input/output on disk. The compilation of the code is correct but the
dictionary I build doesn't compile and produce the following error message
:

CC: "Dictionary.cxx", line 158: error: void ofstream::ofstream(const class
ofstream&) cannot access void ios::ios(const ios&): private member (1655)
CC: "Dictionary.cxx", line 158: error: void fstreambase::fstreambase(const
class fstreambase&) cannot access void ios::ios(const ios&): private
member (1655)
CC: "Dictionary.cxx", line 158: error: void filebuf::filebuf(const class
filebuf&) cannot access void streambuf::streambuf(const streambuf&):
private member (1655)
CC: "Dictionary.cxx", line 158: error: void ostream::ostream(const class
ostream&) cannot access void ios::ios(const ios&): private member (1655)
CC: "Dictionary.cxx", line 158: error: void ifstream::ifstream(const class
ifstream&) cannot access void ios::ios(const ios&): private member (1655)
CC: "Dictionary.cxx", line 158: error: void istream::istream(const class
istream&) cannot access void ios::ios(const ios&): private member (1655)

Although I included the iostream.h, iomanip.h and fstream.h header files.
I work on HP-UX10.20 and the root version is 2/20.06 on CC compiler.

Here is the header file of my class :
class DataManager{
protected:
ofstream Log;
ifstream ODF;
public:
DataManager(char*);
void ConnectLog(char*);
void ConnectODF(char*);
void DisConnectLog();
void DisConnectODF();
ClassDef(DataManager,0)
};

and this is the definition of one of my member functions :
void DataManager::ConnectLog(char *name){
Log.open(name,ios::out);
if(Log.bad()){
cerr<<"Can't open Log file "<<name<<"\n";
exit(0);
}
Log<<"Connecting Log File ..."<<name<<"\n";
cout<<"Connecting Log File ... "<<name<<"\n";
}

Thank you for your help,
Frederic.

-------- Frederic Machefert ------------
DAPNIA/SPP - Bat. 141 - Piece 26B
CEA-SACLAY - 91191 GIF-SUR-YVETTE Cedex - FRANCE
tel: (33) 01 69 08 46 03 fax: (33) 01 69 08 36 49
Frederic.Machefert@cea.fr