次の方法で共有


CArchive::SerializeClass

基本クラスのバージョン情報を保存および読み込みすると、このメンバー関数を呼び出します。

void SerializeClass(
   const CRuntimeClass* pClassRef 
);

パラメーター

  • pClassRef
    基本クラスのランタイム クラスのオブジェクトへのポインター。

解説

SerializeClassCArchiveの方向に応じて CArchive のオブジェクトにクラスへの参照を、読み取りまたは書き込みを行います。ReadClass の代わりに SerializeClass、基本クラスのオブジェクトをシリアル化する便利な方法として WriteClass を使用してください; SerializeClass により、コードおよびいくつかのパラメーターが必要です。

ReadClassのように、SerializeClass はアーカイブ クラス情報は、ランタイム クラスと互換性があることを確認します。これに互換性がない場合、SerializeClassCArchiveExceptionをスローします。

クラスは、ランタイム DECLARE_SERIALIMPLEMENT_SERIALを使用する必要があります。; それ以外 SerializeClassCNotSupportedExceptionをスローします。

pRuntimeClass のパラメーターの値を取得するに RUNTIME_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);
}

必要条件

ヘッダー : afx.h

参照

関連項目

CArchive クラス

階層図

CArchive::ReadClass

CArchive::WriteClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

CArchiveException クラス

CNotSupportedException クラス