クラスObjectといくつかの派生クラスがありclass Bird : public Objectます。関数Object::RenderとBird::Renderが定義され、実装されています。(実際のところ、Bird::Render呼び出しますObject::Render)
vector<Object*>たくさんのBird*sを保持している a もあります。現在、将来的には、このベクターは他のタイプのオブジェクトも保持します。
私の質問は: そのベクトルの要素の型を知らなくても、その特定のRender機能を実行することは可能ですか?
vector<Object*> objects;
object.push_back(new Bird());
// ...
objects[i]->Render(); // This should execute Bird::Render
私が見る限り、最後の行のみが実行Object::Renderされます (呼び出し関数に関しては、これはバニラObjectです)。
それを変更する方法はありますか?