派生选件类从CObject

本文介绍需要最小的步骤从 CObject派生类。其他 CObject 类文章介绍必需的步骤来利用特定 CObject 功能,例如序列化和诊断,调试支持。

有关 CObject的讨论中,常用术语 “接口文件”和 “实现文件”。接口文件 (通常称为头文件或。H 文件) 包含必需的类声明以及其他使用类。实现文件 (或 .CPP 文件) 包含类定义和实现类成员函数的代码。例如,对于此类情况,类命名为 CPerson,通常可以创建一个名为 PERSON.H 的接口文件和实现文件命名为 PERSON.CPP。但是,对于不会在应用程序之间共享的一些小型类,将这种接口和实现为单个 .CPP 文件有时很容易得多。

可以从功能的四个级别选项,在从派生类。 CObject时:

  • 基本功能:不支持对于运行时类信息或序列化,但包括诊断内存管理。

  • 基本功能和支持对于运行时类信息。

  • 基本功能和支持对于运行时类信息和动态创建。

  • 基本功能和支持对于运行时类信息、动态创建和序列化。

供以后将用作基类) 的重用模型的类 (这些应至少包含运行时类支持,并且序列化支持,因此,如果任何将来的序列化需要预期。

您选择的功能级别使用在从 CObject派生类的声明和实现的特定声明和实现宏。

下表显示在所使用的宏中的关系支持序列化和运行时信息。

用于序列化和运行时信息的宏

使用的宏

CObject::IsKindOf

CRuntimeClass::

CreateObject

CArchive::operator>>

CArchive::operator<<

基本 CObject 功能

DECLARE_DYNAMIC

DECLARE_DYNCREATE

DECLARE_SERIAL

使用基本的 CObject 功能

  • 使用常规 C++ 语法从 CObject 派生您的类 (或从 CObject派生的类)。

    下面的示例演示最简单的情况,类从派生的 CObject的:

    class CSimple : public CObject
    {
       // add CSimple-specific members and functions...
    };
    

通常,但是,您可能需要重写某些 entity_CODECObject 的成员函数处理您的新类特定。例如,您可能通常要重写 CObjectDump 功能对您的类内容提供调试输出。有关如何的详细信息重写 Dump,请参见中的文章 诊断:转储对象内容。您可能还需要重写 CObjectAssertValid 功能提供验证类对象的数据成员的一致性的自定义测试。有关阐释如何重写 AssertValid,请参见 MFC ASSERT_VALID 和 CObject::AssertValid

文章 指定的功能级别 描述如何指定函数的其他级别,包括运行时类信息、动态对象创建并序列化。

请参见

概念

使用CObject