【发布时间】:2020-01-17 22:18:09
【问题描述】:
我想序列化我的数据并且我有多态类。
最初当我学习序列化的过程时,我在他们的头文件中声明了继承类。
Header file for Sphere which is sub class of geometry
BOOST_CLASS_EXPORT(Sphere)
但是当我尝试在我的项目中进行操作时,我得到了链接器错误 2005,指出该对象已在对象中定义。
所以我尝试在 cpp 文件中声明 BOOST_CLASS_EXPORT(Sphere),但得到错误消息派生类未注册或导出。
最终我通过在主文件中声明派生类来让它工作。
BOOST_CLASS_EXPORT_GUID(Sphere, "Sphere");
但这里的问题是,如果我有 30 个对象,我需要在主文件中声明它们,如果我添加任何新类,我需要在主文件中声明它们。
我可以在类的头文件或 cpp 文件中定义导出吗?
【问题讨论】:
标签: c++ c++11 serialization boost