【发布时间】:2017-01-13 21:57:33
【问题描述】:
我试图了解 boost 库的序列化是如何工作的,我只想确保我的想法是正确的。
如果我保存对象(我只有指向该对象的指针)然后尝试加载它,则顺序如下:
- 调用此对象的构造函数。
- 复制数据。
问题是如果构造函数使用类的静态成员(例如一些计数器),它会给我关于加载对象的误导信息。我有基于静态计数器的对象 ID,并且(加载后)构造函数打印到控制台的对象 ID 不正确。这似乎对我的程序没有任何伤害,因为在调用构造函数后一切正常。甚至析构函数也会打印出正确的对象 ID。
我对这个序列是否正确?或者也许这里正在发生其他一些“魔法”?
【问题讨论】:
-
你是否序列化和反序列化对象的 ID?
-
可以,但是构造函数打印的ID不正确。调用构造函数后,ID似乎加载正确
-
如果我序列化多个对象,所有 ID(第一个对象除外)都相同(计数器已加载?)。这一切都让我觉得调用构造函数后数据正在加载,这很合理。
标签: c++ serialization boost constructor load