2

我是否需要序列化没有成员的基础对象(例如接口)?

class Base {
    template <typename A> void serialize(A& a, unsigned int v) {}
};

class Derived: public Base {
    template <typename A> void serialize(A& a, unsigned int v) {
        // Should I do this?
        archive & boost::serialization::base_object<Base>(*this);
    }
};

这似乎是不必要的样板文件,并且会导致对基类的 boost::serialization 产生额外的依赖,但同时如果有人稍后将成员添加到基类中,这将很困难,因为整个层次结构都需要被改变。

4

1 回答 1

1

对于基指针的序列化,您需要 Base::serialize。

于 2013-10-10T21:16:16.500 回答