共用方式為


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必須包含在類別實作。

請注意,此巨集定義將會叫用類別的預設建構函式。 如果類別明確實作非一般的建構函式時,它必須同時明確地實作預設建構函式也。 預設建構函式可以加入至類別的私用受保護的成員的區段,以讓它無法從呼叫以外的類別實作。

範例

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 巨集和全域變數