Boost序列化基类

Posted

技术标签:

【中文标题】Boost序列化基类【英文标题】:Boost serialization base class 【发布时间】:2012-06-21 16:37:06 【问题描述】:

使用Boost的序列化库时,可以调用基类的序列化

ar & boost::serialization::base_object<> (*this);

根据文档。不过,我想知道,如果不这样做是否安全(我的意思是你可以选择序列化基类中的数据吗?)

【问题讨论】:

【参考方案1】:

您可以选择不序列化基类中的数据,但是在基类中序列化的任何成员变量都不会被记录和恢复。

如果您只想序列化正在使用的特定具体类,并且手动归档重建类实例所需的所有变量,这可能没问题。

但你为什么要这样做?它通常表明继承结构有问题...

【讨论】:

特别是 - 您未归档的任何成员变量都将恢复为它们在构造函数中给出的任何值(如果有)。

以上是关于Boost序列化基类的主要内容,如果未能解决你的问题,请参考以下文章

Boost 将派生类反序列化为基类指针

boost::serialization 用基类指针转存派生类(错误多多,一波三折)

在 Boost (C++) 中没有类跟踪的派生类序列化

boost::boost::unordered_map 的序列化

如何使用boost序列化?

使用 boost 套接字的 Boost 序列化失败