首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++中可以序列化和反序列化一个类吗?

在C++中可以序列化和反序列化一个类吗?
EN

Stack Overflow用户
提问于 2008-10-24 18:19:42
回答 14查看 166.1K关注 0票数 151

在C++中可以序列化和反序列化一个类吗?

我已经使用Java三年了,序列化/反序列化在该语言中相当简单。C++有类似的功能吗?是否有处理序列化的本机库?

举个例子会很有帮助。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2008-10-24 18:24:06

Boost::serialization库很好地处理了这一点。我已经在几个项目中使用过它。这里有一个示例程序,展示了如何使用它,here

唯一的本机方法是使用streams。这就是Boost::serialization库所做的全部工作,它通过设置一个框架来扩展流方法,以便将对象写成类似文本的格式,并从相同的格式中读取它们。

对于内置类型,或者您自己正确定义了operator<<operator>>的类型,这非常简单;有关更多信息,请参阅the C++ FAQ

票数 100
EN

Stack Overflow用户

发布于 2014-03-02 09:00:53

我知道这是一个古老的帖子,但它是搜索c++ serialization时最先出现的帖子之一。

我鼓励任何能够访问C++11的人看看cereal,这是一个仅支持C++11头的序列化库,它开箱即用,支持二进制、JSON和XML。cereal被设计为易于扩展和使用,并具有类似于Boost的语法。

票数 59
EN

Stack Overflow用户

发布于 2008-10-24 18:44:07

Boost是一个很好的建议。但如果你想自己动手,也不是很难。

基本上,您只需要一种方法来构建对象图,然后将它们输出为某种结构化存储格式(JSON、XML、YAML等)。构建图形就像利用标记递归的得体对象算法,然后输出所有标记的对象一样简单。

我写了一篇文章,描述了一个初级的(但仍然强大的)序列化系统。你可能会发现它很有趣:Using SQLite as an On-disk File Format, Part 2

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/234724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档