1
私はParentとDerivedという2つのクラスを持っています。私はバイナリファイルからそれらを読み込んだり、読み込んだりすることができます。どのようにアイデアやコードスニペットを手伝ってください。仮想メンバーを持つクラスから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