上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.1.2 MFC类的分层结构
MFC提供了许多设计好的类来满足广泛的需要。大多数MFC类都是从CObject中直接或间接地派生出来的。CObject给那些继承它的类提供了3个重要的特性:
• 串行化支持。
• 运行时类信息支持。
• 诊断和调试支持。
串行化是对象的永久数据流出或流入存储介质(如磁盘文件)的进程。把CObject作为基类,可以创建可串行化的类,其实例容易存储和重新创建。运行的类信息(RTCI)允许在程序运行时检索对象的类名称及对象的其他信息。RTCI的执行不同于C++中的运行时类型信息(RTTI)机制,因为它比RTTI要早出现好多年。嵌入在CObject中的诊断和调试支持允许对CObject派生类的实例执行有效性检查,并将状态信息转存到一个调试窗口。
CObject对它的派生类还提供了其他好处。例如,重载new和delete运算符防止内存泄漏。如果从CObject派生类创建了一个对象,而没有在应用程序结束前删除它,那么MFC将在调试输出窗口写一条警告信息。随着对MFC越来越熟悉,这个MFC类基本特点的重要性也会变得越来越清晰。