1
我有两个类:Parent和Derived。我希望能够保存并从二进制文件中读取/读取它们,或将它们传输。请帮助想法或代码片段如何做。用虚拟成员从课堂制作POD
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类似乎不是一个好主意。
虚拟函数不是问题(从某种意义上说你可以很容易地解决这个问题),但是'std :: string'是一个问题。你需要决定如何保存它。然后编写代码来序列化和反序列化;谷歌那。 –
不能使用boost.serialization? – Arunmu