【发布时间】:2011-10-27 09:22:30
【问题描述】:
我有一个具有以下类的 C++ 应用程序:
class AAA-
class BBB继承自AAA -
class CCC继承自AAA -
class DDD继承自CCC
(所有类都标记为public)
现在我有以下地图:
map <DWORD, AAA*>
我在map 中找到了一个AAA 对象,通过DWORD id,但现在我想知道AAA 的类型是什么:
这将是逻辑:
if(AAA is BBB)
{
...
}
if(AAA is CCC)
{
...
}
if(AAA is DDD)
{
...
}
你知道如何用 C++ 编写它(不添加getType() 的多态函数)吗?
【问题讨论】:
-
为什么需要知道类型?
-
为什么需要它?如果你的类是多态的,编译器会为你完成剩下的工作。