指定的功能级别

本文介绍如何将功能添加到您的 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。

  3. 使用 DECLARE_SERIAL 宏在类声明。

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

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

说明说明

“多态性”指针指向类的对象 (调用其) 或从+中派生的任何类对象 (假设, B)。使用非多态指针若要序列化,框架必须确定它序列化 (b) 对象的运行时类,,因为它可能是从某个基类派生的任何类对象)。

有关更多详细信息有关如何启用序列化,当从 CObject时派生您的类,请参见位于 MFC 中的文件序列化

请参见

概念

派生选件类从CObject