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