17.2.4 序列化的工作方式

2013-10-07 16:13:19 · 作者: · 浏览: 70

17.2.4  序列化的工作方式

图17-1以一种简化形式描述了对文档进行序列化的整个过程。

文档对象中的Serialize()函数将为它的每个数据成员调用Serialize()函数(或者使用重载的插入运算符)。如果一个成员是类对象,那么这个对象的Serialize()函数将对它的所有数据成员进行序列化,直至最后将基本数据类型写入文件。由于MFC中的大部分类最终都派生于CObject,因此它们都包含序列化支持,因而对MFC类的对象几乎始终可以进行序列化处理。

在类的Serialize()成员函数以及应用程序文档对象中将要处理的数据在任何情况下都是数据成员。有关的类和重新构造原始对象时需要的其他任何数据的结构都将由CArchive对象自动处理。

如果从CObject派生了多个层次的类,那么一个类中的Serialize()函数都必须调用其直接基类的Serialize()成员,以确保能够对直接基类数据成员进行序列化处理。注意序列化不支持多重继承,所以在一个层次结构中定义的每个类只能有一个基类。