【发布时间】:2010-04-07 09:50:17
【问题描述】:
通常大多数 MFC(基于窗口的类)都是从 CObject 派生的。 CObject 是做什么的? 为什么有些 MFC 类不需要从 CObject 派生?
【问题讨论】:
标签: mfc visual-c++
通常大多数 MFC(基于窗口的类)都是从 CObject 派生的。 CObject 是做什么的? 为什么有些 MFC 类不需要从 CObject 派生?
【问题讨论】:
标签: mfc visual-c++
根据MSDNCObject主要提供了这些功能:
所以当这些都不需要时,就没有必要从CObject派生。
从CObject 派生时也涉及一些开销(DECLARE/IMPLEMENENT_SERIAL/DYNAMIC 宏),因此可能有比从CObject 派生更简单的方法。
【讨论】:
MFC 文档很好地涵盖了这一点。 CObject 的文档描述了它的作用(序列化支持、运行时类信息等)。
Hierarchy Chart 是一个很好的概述,它显示了哪些类不是从 CObject 派生的。
您可以得出结论,不是从 CObject 派生的类是不需要它提供的服务的类。原因是多方面的:例如像 CFileTime 这样的类是一个简单的数据类型。
【讨论】: