共用方式為


CArchive::SerializeClass

例如,當您想要儲存和載入基底類別版本資訊時,請呼叫此成員函式。

void SerializeClass(
   const CRuntimeClass* pClassRef 
);

參數

  • pClassRef
    為執行階段類別物件的指標之基底類別的。

備註

SerializeClass 寫入 CArchive 物件讀取或寫入至類別的參考,根據 CArchive的方向。 在 ReadClass 位置使用 SerializeClassWriteClass 做為的一種很方便將基底類別物件; SerializeClass 需要較少的程式碼和較少的參數。

ReadClassSerializeClass 驗證封存的類別資訊與您的執行階段類別相容。 如果不相容, SerializeClass 會擲回 CArchiveException

您的執行階段類別必須使用 DECLARE_SERIALIMPLEMENT_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

請參閱

參考

CArchive 類別

階層架構圖

CArchive::ReadClass

CArchive::WriteClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

CArchiveException 類別

CNotSupportedException 類別