【发布时间】:2012-05-07 13:51:10
【问题描述】:
在我的程序中,我有一个名为 Entity 的类。另一个类 Invader 继承了 Entity。由于我想拥有 4 种不同类型的入侵者,我声明了继承自 Invader 的类 Invader1、Invader2、Invader3 和 Invader4。现在我声明一个实体指针类型向量来存储所有入侵者,例如:
entities.push_back(new Invader4());
entities.push_back(new Invader3());
entities.push_back(new Invader2());
entities.push_back(new Invader1());
entities.push_back(new Invader0());
当我在运行时检查实体中元素的类型时,比如说
typeid(*entities->at(index))
它可能会返回四种入侵者之一。在实体中还有其他继承实体的对象。所以我只想检查对象的类型是不是Invader,我不想知道它是Invader1,Invader2等等。
我怎样才能做到这一点?
【问题讨论】:
-
在运行时需要知道类表明设计不好。你到底想做什么?
标签: c++