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)

要求

Header: afx.h

请参见

参考

DECLARE_DYNCREATE

RUNTIME_CLASS

CObject::IsKindOf

概念

MFC宏和Globals