次の方法で共有


IMPLEMENT_DYNCREATE

CObjectのオブジェクト - 使用すると DECLARE_DYNCREATE マクロと実行時に有効にして動的に作成する派生クラスが。

IMPLEMENT_DYNCREATE(class_name, base_class_name )

パラメーター

  • class_name
    クラスの実際の名前。

  • base_class_name
    基本クラスの実際の名前。

解説

フレームワークは、シリアル化の際にディスクからのオブジェクトの読み取りと、新しいオブジェクトを、たとえば動的に作成するこの機能を使用します。クラスの実装ファイルの IMPLEMENT_DYNCREATE のマクロを追加します。詳細については、 CObject クラスのトピックを参照してください。

DECLARE_DYNCREATEIMPLEMENT_DYNCREATE マクロを使用すると、 RUNTIME_CLASS マクロと実行時にオブジェクトのクラスを決定するために CObject::IsKindOf のメンバー関数を使用できます。

DECLARE_DYNCREATE がクラス宣言に含まれる場合、 IMPLEMENT_DYNCREATE はクラス実装に含まれている必要があります。

このマクロ定義はクラスの既定のコンストラクターを呼び出すことに注意してください。重要なコンストラクターがクラスによって明示的に実装する場合は、明示的に既定のコンストラクターを実装する必要があります。既定のコンストラクターは、クラスの private またはプロテクト メンバーのセクションに追加できます。クラス実装の外部から呼び出されるされないようにします。

使用例

class CMyDynCreateObj : public CObject
{
     int m_Num;
public:
     DECLARE_DYNCREATE(CMyDynCreateObj)
     CMyDynCreateObj(int Num) { m_Num = Num; }
private:
     CMyDynCreateObj() { m_Num = 0; }  // provide default constructor only for 
                                       // dynamic creation 
};
IMPLEMENT_DYNCREATE(CMyDynCreateObj, CObject)

必要条件

ヘッダー : afx.h

参照

関連項目

DECLARE_DYNCREATE

RUNTIME_CLASS

CObject::IsKindOf

概念

MFC マクロとグローバル