gpt4 book ai didi

c++ - 将 Boost 与 getter 和 setter 一起使用?

转载 作者:行者123 更新时间:2023-12-02 10:08:56 25 4
gpt4 key购买 nike

我想序列化一个我没有写权限的类。即,我无法更改源文件或头文件。此外,大多数字段都是私有(private)的,可以通过 getter 和 setter 函数访问。

谁能告诉我创建不同的保存和加载函数是否是个好主意(如 boost tutorial 中所述)...

template<class Archive>
void save(Archive & ar, gps_position &g, const unsigned int version) const
{
// note, version is always the latest when saving
ar & g.deg;
ar & g.min;
}
template<class Archive>
void load(Archive & ar, gps_position &g, const unsigned int version)
{
if(version > 0)
ar & g.deg;
ar & g.min;
}
BOOST_SERIALIZATION_SPLIT_MEMBER()

...并使用公共(public)功能:
ar & g.getDeg();

代替
ar & g.deg;

(类似于二传手)??我真的是 C++ 和序列化的新手,我非常感谢任何提示!

最好的,亚历克斯

编辑:添加了 boost 教程的链接

最佳答案

template<class Archive>
void load(Archive & ar, gps_position &g, const unsigned int version)
{
if(version > 0)
{
int d = 0;
ar & d;
g.setDeg(d);
int m = 0;
ar & m;
g.setMin(m);
}
}

像这样的东西。声明变量 -> 从存档中读取 -> 通过调用 setter 函数设置为成员。

关于c++ - 将 Boost 与 getter 和 setter 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11886368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com