私のプログラムには、Entityという名前のクラスがあります。別のクラスのインベーダーはエンティティを継承します。私は4種類のインベーダーを使いたいので、インベーダーを継承するクラスInvader1、Invader2、Invader3、Invader4を宣言します。私は、実行時にエンティティ内の要素の型をチェックすると、それは、4種類のいずれかを返すことがあり派生クラスのタイプを確認してください
typeid(*entities->at(index))
言う
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());
:今、私のようなすべてのインベーダーを保存するために、エンティティのポインタ型ベクトルを宣言します侵略者のエンティティには、エンティティを継承する他のオブジェクトもあります。だから私は、オブジェクトの種類がインベーダーかどうかをチェックしたいのですが、Invader1、Invader2などのようなものかどうかを知りたくありません。
どうすればいいですか?
実行時にクラスを知る必要があることは、設計が悪いことを示します。実際に何をしようとしていますか? –