c++能否像java一样直接把object对象保存到文件

LH50404797 2009-05-21 06:17:34
请问各位猛男,c++能否像java一样直接把object对象保存到文件,然后从文件读取对象直接用指针引用
...全文
294 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2009-05-22
  • 打赏
  • 举报
回复
这是你没有用对吧?我觉得它很好啊?!
不过它的扩展性不在CArchive本身,而是被串行化的对象上扩展,Serialize(CArchive& ar)是一个非常有用的方法
[Quote=引用 7 楼 alicehyxx 的回复:]
CArchive实现存在很多问题,比如可扩展性不好等等。

建议自己实现。
[/Quote]
周成风 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 arong1234 的回复:]
这是你没有用对吧?我觉得它很好啊?!
不过它的扩展性不在CArchive本身,而是被串行化的对象上扩展,Serialize(CArchive& ar)是一个非常有用的方法
[/Quote]

我说得不太科学,不是CArchive实现存在问题,而是实际使用的时候会存在一些问题。

比如一个对象加了几个成员变量,这时候之前存储的序列化文件参数是不是读取不进来?
papaofdoudou 2009-05-22
  • 打赏
  • 举报
回复
mark
Proteas 2009-05-22
  • 打赏
  • 举报
回复
If Java can , C++ can.
LH50404797 2009-05-22
  • 打赏
  • 举报
回复
谢谢各位踊跃发言,我已经知道怎么弄了
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

class A
{
private:
string name;
string pass;
public:
void print()
{
cout < <"name = " < <name < <endl;
cout < <"password = " < <pass < < endl;
}
A()
{
}
A(string n,string p)
{
name=n;
pass=p;
}

};


int main()
{
A a1("TT","dd");

A a2("xx","ff");
ofstream Myfile;
Myfile.open("A.txt",ios::binary);
Myfile.write((char *)&a1,sizeof(A));
Myfile.write((char *)&a2,sizeof(A));

a1.print();
a2.print();


Myfile.close();
A b1;
A b2;
ifstream Myfile2;
Myfile2.open("A.txt",ios::binary);
Myfile2.read((char *)&b1,sizeof(A));
Myfile2.read((char *)&b2,sizeof(A));

b1.print();
b2.print();


return 0;

}
周成风 2009-05-21
  • 打赏
  • 举报
回复
CArchive实现存在很多问题,比如可扩展性不好等等。

建议自己实现。
pathuang68 2009-05-21
  • 打赏
  • 举报
回复
学习了,很好!
「已注销」 2009-05-21
  • 打赏
  • 举报
回复
纯C++:boost可不就是纯C++??
boost里的序列化还是很好用的。
效率很高。
Jamy325 2009-05-21
  • 打赏
  • 举报
回复
纯粹的C++应该没有,但是vc里面有序列化技术CArchive类已经替你封装好了,可直接使用.
如果要自己的实现的话.用是操作文件的方式吧``
「已注销」 2009-05-21
  • 打赏
  • 举报
回复
序列化,boost里有
jixingzhong 2009-05-21
  • 打赏
  • 举报
回复
CArchive原理
http://www.vckbase.com/document/viewdoc/?id=607
jixingzhong 2009-05-21
  • 打赏
  • 举报
回复
MFC 提供CArchive类实现数据的缓冲区读写,同时定义了类对象的存储与读取方案

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧