1
我有一個類Object
和一些派生類,例如class Bird : public Object
。定義和實現功能Object::Render
和Bird::Render
。 (作爲事實上,Bird::Render
調用Object::Render
)繼承的繼承函數
我也有一個vector<Object*>
這是抱着一堆Bird*
秒。現在,將來,這個向量也將包含其他類型的對象。
我的問題是:不知道該向量的元素的類型,是否有可能執行其具體Render
功能,即可以
vector<Object*> objects;
object.push_back(new Bird());
// ...
objects[i]->Render(); // This should execute Bird::Render
據我所看到的,最後一行只執行Object::Render
(關於調用函數,這是有道理的,這是一個香草Object
)。
有什麼方法可以改變它嗎?
他提到Bird :: Render調用Object :: Render,所以它可能不是純虛擬的,或者你可能會展示如何定義純虛函數。 – Potatoswatter
@Patatoswatter好了,更正了。 – ForEveR
工作就像一個魅力。非常感謝! – rspencer