IMPLEMENT_DYNCREATE

启用 CObject对象--将动态创建的派生类在运行时,使用 DECLARE_DYNCREATE 宏。

IMPLEMENT_DYNCREATE(class_name, base_class_name )

参数

  • class-name
    类文件的实际名称。

  • base_class_name
    基类的实际名称。

备注

当在序列化时,从磁盘读取一个对象,框架使用此功能例如动态创建新的对象。 类实现文件添加 IMPLEMENT_DYNCREATE 宏。 有关更多信息,请参见 CObject Class Topics

如果要使用 DECLARE_DYNCREATEIMPLEMENT_DYNCREATE 宏,则可以使用 RUNTIME_CLASS 宏和 CObject::IsKindOf 成员函数可确定对象的类运行时。

如果 DECLARE_DYNCREATE 位于类声明中,则类实现必须包含 IMPLEMENT_DYNCREATE

请注意此宏定义将调用类的默认构造函数。 如果基本构造函数由该类显式实现,则它必须将显式来实现默认构造函数。 默认构造函数可以向类的 privateprotected 成员部分防止其调用从类外部实现。

示例

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 宏和全局函数