我有两个类:Parent和Derived。我想实现从/向二进制文件保存和读取它们或传输它们的能力。请帮忙知道想法或代码片段。
class Parent {
public:
virtual int func1(){ return 1; }
virtual unsigned func2() = 0;
std::string asd;
}
class Derived : public Parent {
public:
unsigned func2(){ return 2; }
bool boo;
}
保存到二进制文件
Parent *obj = new Derived;
write_to_file( obj, sizeof(*obj) );
然后从文件中读取
read_from_file( obj, sizeof(*obj) );
但是这个方法会覆盖虚函数的指针。所以我需要创建没有虚拟的POD类来保存它并从文件中读取。对?为每个Derived创建反映的POD类似乎不是一个好主意。
答案 0 :(得分:0)
这个问题没有直接答案。您应该使用序列化。 C ++没有本机序列化程序,如Java或C#。但是互联网上有很多开源序列化器。例如boost::serialization
,s11n
和其他许多内容。