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