jamesh@cs.umr.edu (James Hartley) (11/28/90)
I recently tried to simulate persistent objects in C++ with the code given
below using Turbo C++. The results that I got were quite erratic. Has
anyone else has problems with declaring and using streams within classes?
---------------------------- BEGIN CODE ------------------------------------
#include <fstream.h>
#include <stdlib.h>
#include <string.h>
class persist {
char *fname;
protected:
fstream dskfile;
public:
persist(char *fn) {
fname = new char[strlen(fn) + 1];
strcpy(fname, fn);
dskfile.open(fname, ios::in | ios::out);
if (!dskfile) {
cerr << "error in opening file\n";
exit(1);
}
}
~persist(void) {
dskfile.close();
delete fname;
}
};
class constant : public persist {
unsigned int k;
public:
constant(char *fn) : persist(fn) { dskfile >> k; }
unsigned int get_constant(void) { return k; }
};
main() {
constant k("CONSTANT.TXT");
cout << "k = " << k.get_constant << "\n";
return 0;
}
---------------------------- END CODE ------------------------------------
--
James J. Hartley Internet: jamesh@cs.umr.edu
Department of Computer Science Bitnet: jamesh@cs.umr.edu@umrvmb.bitnet
University of Missouri - Rolla UUCP: ...!uunet!cs.umr.edu!jamesh