在我的程序中,我有一个名为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))
它可能返回4种之一的侵略者。在实体中还有其他继承实体的对象。所以我只想检查对象的类型是否是Invader,我不想知道它是Invader1,Invader2等。
我该如何做到这一点?
在运行时需要知道类表明设计不好。你究竟在做什么? –