指定的功能级别
本文介绍如何将功能添加到您的 CObject派生类的以下级别:
运行时类信息
动态创建支持
序列化支持
有关 CObject 功能的概述,请参见中的文章 派生类从 CObject。
添加运行时类信息
从 CObject派生您的类,如 派生类从 CObject 文章所述。
使用 DECLARE_DYNAMIC 宏在类声明,如下所示:
class CPerson : public CObject { DECLARE_DYNAMIC( CPerson ) // other declarations };
使用 IMPLEMENT_DYNAMIC 宏在实现文件 (.CPP) 您的类。 此宏接受的参数类及其基类的名称,如下所示:
IMPLEMENT_DYNAMIC( CPerson, CObject )
备注
始终放置 IMPLEMENT_DYNAMIC 在实现文件 (.CPP) 您的类中。应一次只在编译时计算 IMPLEMENT_DYNAMIC 宏并不应使用接口 (文件。在多个文件可能包含的 H)。
若要添加动态创建支持
从 CObject派生您的类。
使用 DECLARE_DYNCREATE 宏在类声明。
定义一个构造函数没有参数 (默认构造函数)。
使用 IMPLEMENT_DYNCREATE 宏在类实现文件。
若要添加序列化支持
从 CObject派生您的类。
重写 Serialize 成员函数。
备注
,也就是说,如果直接调用 Serialize 您不希望通过一多态指针序列化对象,而忽略步骤 3。
使用 DECLARE_SERIAL 宏在类声明。
定义一个构造函数没有参数 (默认构造函数)。
使用 IMPLEMENT_SERIAL 宏在类实现文件。
备注
“多态性”指针指向类的对象 (调用其) 或从+中派生的任何类对象 (假设, B)。使用非多态指针若要序列化,框架必须确定它序列化 (b) 对象的运行时类,,因为它可能是从某个基类派生的任何类对象)。
有关更多详细信息有关如何启用序列化,当从 CObject时派生您的类,请参见位于 MFC 中的文件 和 序列化。