1.永久性对象与序列化永久性对象:内存中的对象以文件的形式存入存储介质,而从介质中读入时,该对象又能恢复为原来的状态。序列化:能使对象成为永久性对象的机制。2.Serialize函数Serialize函数是CObject类提供的虚函数,凡是希望具有序列化能力的类,都必须以CObject类或其派生类为基类。由于应用程序的数据一般由文档对象来管理的,每当用户新建,打开或保存文档时,程序就会自动调用文档类对象的Serialize函数。3.对象的序列化对象的序列化的操作过程封装成了一个类CArchive,实际上把类信息表跟类对象打包成文件的工作就是由CArchive类的对象在Serialize函数中完成的。Serialize函数原型:virtual void Serialize(CArchive &ar);当需要存取或读取一个对象时,必须在Serialize函数中进行。例如某类A为永久化类,具体编码过程如下:Class A::CObject{ DECLARE_SERIAL(A); //声明了序列化 private: int m_X,m_Y; ... public: Serialize(CArchive&ar); //重写序列化虚函数};IMPLEMENT_SERIAL(A,CObject,1); //实现序列化重写的序列化函数Serialize的实现:A::Serialize(CArchive&Aar){ if(ar.IsStoring()) //存储数据 { ar<<m_X; ar<<m_Y; } else //读取数据 { ar>>m_X; ar>>m_Y: }}

评论