CArchive::SerializeClass
例如,當您想要儲存和載入基底類別版本資訊時,請呼叫此成員函式。
void SerializeClass(
const CRuntimeClass* pClassRef
);
參數
- pClassRef
為執行階段類別物件的指標之基底類別的。
備註
SerializeClass 寫入 CArchive 物件讀取或寫入至類別的參考,根據 CArchive的方向。 在 ReadClass 位置使用 SerializeClass 和 WriteClass 做為的一種很方便將基底類別物件; SerializeClass 需要較少的程式碼和較少的參數。
如 ReadClass, SerializeClass 驗證封存的類別資訊與您的執行階段類別相容。 如果不相容, SerializeClass 會擲回 CArchiveException。
您的執行階段類別必須使用 DECLARE_SERIAL 和 IMPLEMENT_SERIAL;否則,會擲回 SerializeClassCNotSupportedException。
使用 RUNTIME_CLASS 巨集來擷取 pRuntimeClass 參數的值。 基底類別 (Base Class) 必須已經使用 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