【发布时间】:2010-04-19 04:04:40
【问题描述】:
假设我有一堂课
class A
{
char *attr1,*attr2;
public:
. . .
};
如何将这个类的对象以二进制格式保存到文件中并读回?
谢谢。
【问题讨论】:
-
@Manjunath:你最后做了什么?请接受其中一个答案。
标签: c++
假设我有一堂课
class A
{
char *attr1,*attr2;
public:
. . .
};
如何将这个类的对象以二进制格式保存到文件中并读回?
谢谢。
【问题讨论】:
标签: c++
有关高效、快速和可扩展的二进制序列化格式,请查看Google protocol buffers。
【讨论】:
阅读有关序列化的信息。例如Boost serialization 库。他们有一个很好的定义:
在这里,我们使用术语“序列化” 意味着可逆的解构 任意一组 C++ 数据 结构为字节序列。 这样的系统可以用来 重构等效结构 在另一个程序上下文中。取决于 在上下文中,这可能使用 实现对象持久化,远程 参数传递或其他设施。 在这个系统中,我们使用术语 “存档”指的是特定的 这个字节流的渲染。 这可能是一个二进制数据文件, 文本数据、XML 或其他创建的 由该库的用户提供。
也就是说,这样的解决方案是解决大多数序列化问题的 5 公斤锤。您可能需要更简单的东西。例如,如果您的对象仅包含几个char* 属性,您可以以更简单的方式保存它。但是,如果您的对象将来变得更加复杂,一般的解决方案将允许您灵活处理。
【讨论】:
你可能想试试 xml,而不是二进制。
(field=value) 格式也很容易被解析回来。
还可以查看这个 Qustion:
祝你好运!!
【讨论】: