クラス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
です)。
それを変更する方法はありますか?