私のプログラムには、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))
4種類の侵入者のうちの1つを返す可能性があります。エンティティには、エンティティを継承する他のオブジェクトもあります。したがって、オブジェクトのタイプがInvaderであるかどうかを確認したいだけです。それが、Invader1、Invader2などであるかどうかは知りたくありません。
どうすればこれを達成できますか?