CArchive::SerializeClass
当需要存储并加载基类的版本信息时,应调用此成员函数。
void SerializeClass(
const CRuntimeClass* pClassRef
);
参数
- pClassRef
对运行时选件类对象的指针基类的。
备注
SerializeClass 读取或写入对选件类为 CArchive 对象,按照 CArchive的方向。 在 ReadClass 位置使用 SerializeClass 和 WriteClass 作为一种简便方式序列化基类的对象; SerializeClass 需少量代码和较少形参。
与 ReadClass,SerializeClass 验证存档的选件类信息与您的运行时选件类兼容。 如果没有CLS,SerializeClass 将引发 CArchiveException。
您的运行时选件类必须使用 DECLARE_SERIAL 和 IMPLEMENT_SERIAL;否则,SerializeClass 将引发 CNotSupportedException。
使用 RUNTIME_CLASS 宏检索 pRuntimeClass 参数的值。 基类所使用的 IMPLEMENT_SERIAL 宏。
示例
class CBaseClass : public CObject
{
DECLARE_SERIAL(CBaseClass);
};
class CDerivedClass : public CBaseClass
{
public:
virtual void Serialize(CArchive& ar);
};
void CDerivedClass::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
//normal code for storing contents
//of this object
}
else
{
//normal code for reading contents
//of this object
}
//allow the base class to serialize along
//with its version information
ar.SerializeClass(RUNTIME_CLASS(CBaseClass));
CBaseClass::Serialize(ar);
}
要求
Header: afx.h