I am trying to create a generic class to write and read Objects to/from file. Called it ActiveRecord class
only has one method, which saves the class itself:
void ActiveRecord::saveRecord(){
string fileName = "data.dat";
ofstream stream(fileName.c_str(), ios::out);
if (!stream) {
cerr << "Error opening file: " << fileName << endl;
exit(1);
}
stream.write(reinterpret_cast<const char *> (this), sizeof(ActiveRecord));
stream.close();
}
now I'm extending this class with User class:
class User : public ActiveRecord
{
public:
User(void);
~User(void);
string name;
string lastName;
};
to create and save the user I would like to do something like:
User user = User();
user.name = "John";
user.lastName = "Smith"
user.save();
how can I get this ActiveRecord::saveRecord() method to take any object, and class definition so it writes whatever i send it:
to look like:
void ActiveRecord::saveRecord(foo_instance, FooClass){
string fileName = "data.dat";
ofstream stream(fileName.c_str(), ios::out);
if (!stream) {
cerr << "Error opening file: " << fileName << endl;
exit(1);
}
stream.write(reinterpret_cast<const char *> (foo_instance), sizeof(FooClass));
stream.close();
}
and while we're at it, what is the default Object type in c++. eg. in objective-c it's id in java it's Object in AS3 it's Object what is it in C++??