派生选件类从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