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)
要求
Header: afx.h