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