CMap以CRuntimeClass为关键

时间:2015-09-03 14:46:46

标签: c++ stl mfc msdn

我希望通过运行时类映射我的对象...或者将它们与运行时类相关联的一些唯一ID。我不会硬编码数据(EG:CObject = 2,CObjectEx = 3)

CRuntimeClass有m_lpszClassName和m_wSchema(m_wSchema仅用于Implement_Dynamic类,我有很多串行类,其中schema为0,因此不起作用)。也许GetRuntimeClass()返回的CRunTimeClass *可能是一个唯一的密钥?

CMyInheritedObject类型的所有CObject都返回与CRuntmeClass对象完全相同的指针吗?因此我可以使用CRuntimeClass *作为同类型所有类的唯一键吗?

1 个答案:

答案 0 :(得分:1)

是的,CRuntimeClass对于给定类型的所有对象始终是唯一的。否则IsKindOf和MFC宏DYNAMIC_DOWNCAST将无效。

如果CMyInheritedObject使用IMPLEMENT_宏,则会创建相应的静态对象。