C++ 在何处声明用于序列化的BOOST_类_导出
我想序列化我的数据,我有多态类 最初,在学习序列化过程时,我在头文件中声明了继承的类C++ 在何处声明用于序列化的BOOST_类_导出,c++,c++11,serialization,boost,C++,C++11,Serialization,Boost,我想序列化我的数据,我有多态类 最初,在学习序列化过程时,我在头文件中声明了继承的类 Header file for Sphere which is sub class of geometry BOOST_CLASS_EXPORT(Sphere) 但是当我尝试在我的项目中执行时,我得到了链接器error2005,说明对象已经在对象中定义 因此,我尝试在cpp文件中声明BOOST_类_导出(Sphere),但收到错误消息“派生类未注册或导出” 最终,我通过在主文件中声明派生类使它工作起来
Header file for Sphere which is sub class of geometry
BOOST_CLASS_EXPORT(Sphere)
但是当我尝试在我的项目中执行时,我得到了链接器error2005,说明对象已经在对象中定义
因此,我尝试在cpp文件中声明BOOST_类_导出(Sphere),但收到错误消息“派生类未注册或导出”
最终,我通过在主文件中声明派生类使它工作起来
BOOST_CLASS_EXPORT_GUID(Sphere, "Sphere");
但这里的问题是,如果我有30个对象,我需要在主文件中声明它们,如果我添加任何新类,我需要在主文件中再次声明它们
我可以在类的头文件或cpp文件中定义导出。您想将导出键和实现分开 我有一些非常完整的答案,其中一些还涉及多态性和抽象基础。请参见此处,以获取好的建议:
- 最简单的介绍(没有代码,但可能是最具说明性的)
- 包含更多解释和文档引用的完整示例,采用多个翻译单元:
- (包含多个源文件和makefile)
- 另一个具有多个翻译单元的示例
- 混合静态多态性和动态多态性的微妙陷阱:
- 火箭科学黑客:
- 最简单的介绍(没有代码,但可能是最具说明性的)
- 包含更多解释和文档引用的完整示例,采用多个翻译单元:
- (包含多个源文件和makefile)
- 另一个具有多个翻译单元的示例
- 混合静态多态性和动态多态性的微妙陷阱:
- 火箭科学黑客: