如何将serialize方法与此代码分开并将其封装到另一个类中,这样我们就不必在我们创建的每个类中编写它。
class Test
{
private:
friend class boost::serialization::access;
template<class Archive> void serialize(Archive & ar,
const unsigned int version)
{
ar & BOOST_SERIALIZATION_NVP(a);
ar & BOOST_SERIALIZATION_NVP(b);
ar & BOOST_SERIALIZATION_NVP(emp);
}
int a;
int b;
Employee *emp;
public:
Test(int a, int b,int c, int d)
{
this->a = a;
this->b = b;
emp = new Employee(c,d);
}
};
答案 0 :(得分:0)
如docs中所述,您可以使用自由函数来序列化类。当然,这需要数据成员公开。
对于&#34;真实&#34;隐藏数据的类可以定义一个&#34;序列化结构&#34;为了序列化的目的,它被传入和传出真正的类。