派生选件类从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 的成员函数处理您的新类特定。例如,您可能通常要重写 CObject 的 Dump 功能对您的类内容提供调试输出。有关如何的详细信息重写 Dump,请参见中的文章 诊断:转储对象内容。您可能还需要重写 CObject 的 AssertValid 功能提供验证类对象的数据成员的一致性的自定义测试。有关阐释如何重写 AssertValid,请参见 MFC ASSERT_VALID 和 CObject::AssertValid。
文章 指定的功能级别 描述如何指定函数的其他级别,包括运行时类信息、动态对象创建并序列化。