私はこのようなものを持っています:
class A {
void add (A* a) {
//add a to a vector<A*>
}
virtual void draw() = 0;
}
class B : public A {
void tick() {}
void draw() {}
}
class C : public A {
void draw() {}
}
今私がやりたいことは、次のようなループを持つことです:
for(int i=0; i<vector.size(); i++) {
vector[i]->tick();
}
問題は、このベクトルのすべての要素にメソッドがあるわけではないということですが、ベクトルをループしてすべての要素tick()
を呼び出すこともできるようにしたいので、同じベクトルにそれらを持ちたいと思っています。draw()
これを解決する方法はありますか?別のベクトルを持つことを検討していますが、むしろしたくありません。