Я пытаюсь создать универсальный класс для записи и чтения объектов в / из файла.Вызывается это ActiveRecord класс
имеет только один метод, который сохраняет сам класс:
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();
}
теперь я расширяю этот класс с классом пользователя:
class User : public ActiveRecord
{
public:
User(void);
~User(void);
string name;
string lastName;
};
чтобы создать и сохранить пользователя, я хотел бы сделать что-то вроде:
User user = User();
user.name = "John";
user.lastName = "Smith"
user.save();
как я могу получить этот метод ActiveRecord :: saveRecord () для получения любого объекта и определения класса, чтобы он записывал все, что я отправляю:
, чтобы выглядеть следующим образом:
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();
}
и пока мы находимся, какой тип объекта по умолчанию в c ++.например.в target-c это id в java, это Object в AS3, это Object, что это в C ++ ??