看到如下程序段,其中serialization有疑问:
class CDImageProcessDoc : public CDocument
{
protected: // create from serialization only
CDImageProcessDoc();
DECLARE_DYNCREATE(CDImageProcessDoc)
查询记录如下:《visual c++ 面向对象编程教程(第二版)》王育坚著
P148、p197
序列化
持久性(persistence)是指对象所具有的保存和加载七状态的能力,即对象能够在程序运行结束钱将对象的当前状态写入永久性存储体中,以后在程序再运行时通过对数据的读取而回复对象的状态。这种保存和恢复 的规程称为序列化(seialize).
文档类头文件中的定义如下:
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDImageProcessDoc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
//}}AFX_VIRTUAL
源文件定义如下:
void CDImageProcessDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring()) //函数参数ar是一个CArchive类的对象,文档数据的序列化操作通过CArchive对象来完成
{ //CArchive类的成员函数IsStoring()用于判断文件操作是读取还是写入数据
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}