IMPLEMENT_DYNCREATE
CObjectのオブジェクト - 使用すると DECLARE_DYNCREATE マクロと実行時に有効にして動的に作成する派生クラスが。
IMPLEMENT_DYNCREATE(class_name, base_class_name )
パラメーター
class_name
クラスの実際の名前。base_class_name
基本クラスの実際の名前。
解説
フレームワークは、シリアル化の際にディスクからのオブジェクトの読み取りと、新しいオブジェクトを、たとえば動的に作成するこの機能を使用します。クラスの実装ファイルの IMPLEMENT_DYNCREATE のマクロを追加します。詳細については、 CObject クラスのトピックを参照してください。
DECLARE_DYNCREATE と IMPLEMENT_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