在我的程序中,我有一个名为 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等。
我怎样才能做到这一点?