【问题标题】:Boost Serialization of classes with private data使用私有数据促进类的序列化
【发布时间】:2012-02-26 15:26:00
【问题描述】:

是否可以使用 Boost 序列化库非侵入性地序列化具有私有数据但具有公共 get/set 方法的类。如果没有,是否有其他库能够做到这一点? 谢谢

【问题讨论】:

标签: c++ serialization boost


【解决方案1】:

如果必须,您可以反序列化/序列化为临时变量(存档不会神奇地知道被序列化的变量是类的字段)。调整来自tutorial 的序列化函数以假设不能直接访问数据:

template<class Archive>
void serialize(Archive & ar, gps_position & g, const unsigned int version)
{
    int degrees = g.getDegrees();
    int minutes = g.getMinutes();
    float seconds = g.getSeconds();

    ar & degrees;
    ar & minutes;
    ar & seconds;

    g.setDegrees(degrees);
    g.setMinutes(minutes);
    g.setSeconds(seconds);
}

【讨论】:

  • 非常好,正是我需要的。谢谢你。
猜你喜欢
  • 2018-06-05
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2010-10-22
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
相关资源
最近更新 更多