IMPLEMENT_DYNCREATE
启用 CObject对象--将动态创建的派生类在运行时,使用 DECLARE_DYNCREATE 宏。
IMPLEMENT_DYNCREATE(class_name, base_class_name )
参数
class-name
类文件的实际名称。base_class_name
基类的实际名称。
备注
当在序列化时,从磁盘读取一个对象,框架使用此功能例如动态创建新的对象。 类实现文件添加 IMPLEMENT_DYNCREATE 宏。 有关更多信息,请参见 CObject Class Topics。
如果要使用 DECLARE_DYNCREATE 和 IMPLEMENT_DYNCREATE 宏,则可以使用 RUNTIME_CLASS 宏和 CObject::IsKindOf 成员函数可确定对象的类运行时。
如果 DECLARE_DYNCREATE 位于类声明中,则类实现必须包含 IMPLEMENT_DYNCREATE。
请注意此宏定义将调用类的默认构造函数。 如果基本构造函数由该类显式实现,则它必须将显式来实现默认构造函数。 默认构造函数可以向类的 private 或 protected 成员部分防止其调用从类外部实现。
示例
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