我正在尝试创建一个通用类来向文件写入和读取对象。称之为 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();
}
现在我用 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++ 中默认的 Object 类型是什么。例如。在objective-c中它的id在java中它是AS3中的对象它是对象在C++中它是什么?