遗憾的是,没有自动方法在C++中序列化对象.这是因为任何序列化引擎都需要能够在运行时"理解"自定义对象,而C++不包含必要的信息.另一方面,Java和.Net有所谓的反射.此机制允许任何人在运行时浏览任意对象的数据结构.
所有这些并不意味着没有办法用相对较少的努力来序列化C++对象.以标准C++流库为例.通过写作
int x = 2010;
cout << x << endl;
Run Code Online (Sandbox Code Playgroud)
你实际上序列化int类型的对象.可以扩展此机制以支持您的自定义类.这只是通过重载operator <<来完成的.它不如Java序列化那么好,但它也非常方便.
还有一些库使它更简单.正如有人提到的那样,boost序列化库做得很好.使用boost序列化看起来与使用iostream非常相似,但它解决了标准流固有的一些问题.
归档时间: |
|
查看次数: |
6636 次 |
最近记录: |