Я пытаюсь создать общий класс для записи и чтения объектов в/из файла. Вызывается это ActiveRecord классC++ передача неизвестного типа функции и любое определение типа класса
имеет только один метод, который сохраняет сам класс:
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();
}
теперь я расширить этот класс с классом User:
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++. например. в объекте-c его id в java это объект в AS3 это объект что это в C++ ??
В C++ просто нет типа класса root. –