指定功能级别

本文介绍如何将以下级别的功能添加到 CObject 派生类:

  • 运行时类信息

  • 动态创建支持

  • 序列化支持

有关功能的一般说明 CObject ,请参阅 从 CObject 派生类的文章。

添加运行时类信息

  1. CObject中派生类,如从 CObject 文章派生类中所述。

  2. 在类声明中使用 DECLARE_DYNAMIC 宏,如下所示:

    class CPerson : public CObject
    {
       DECLARE_DYNAMIC(CPerson)
    
       // other declarations
    };
    
  3. 在实现文件中使用IMPLEMENT_DYNAMIC宏(。课堂的 CPP。 此宏采用类的名称及其基类的参数,如下所示:

    IMPLEMENT_DYNAMIC(CPerson, CObject)
    

注释

始终将IMPLEMENT_DYNAMIC放在实现文件中()。你的课堂的 CPP。 IMPLEMENT_DYNAMIC宏应在编译期间只计算一次,因此不应在接口文件() 中使用。可能包含在多个文件中的 H)。

添加动态创建支持

  1. CObject. 派生类

  2. 在类声明中使用 DECLARE_DYNCREATE 宏。

  3. 定义没有参数的构造函数(默认构造函数)。

  4. 在类实现文件中使用IMPLEMENT_DYNCREATE宏。

添加序列化支持

  1. CObject. 派生类

  2. Serialize重写成员函数。

    注释

    如果直接调用 Serialize ,即不希望通过多态指针序列化对象,请省略步骤 3 到 5。

  3. 在类声明中使用DECLARE_SERIAL宏。

  4. 定义没有参数的构造函数(默认构造函数)。

  5. 在类实现文件中使用IMPLEMENT_SERIAL宏。

注释

“多态指针”指向类的对象(将其称为 A)或从 A 派生的任何类的对象(例如,B)。 若要通过多态指针进行序列化,框架必须确定它正在序列化的对象(B)的运行时类,因为它可能是派生自某些基类的任何类的对象(A)。

有关如何在派 CObject生类时启用序列化的更多详细信息,请参阅 文章 MFC序列化中的文件。

另请参阅

从 CObject 派生类