0
我有一个std ::基类型的指针向量:储存在基本类型的矢量导出对象
vector<Base*> baseList;
我推派生类型到向量:
Derived* derivedObject = new Derived();
baseList.push_back(derivedObject);
但是当我迭代列表并调用派生类从基类重写的函数时,派生类中的代码不会被调用。我是否以正确的方式使用矢量?
我的基类有使用虚拟关键字声明它的功能之前和派生类派生的基类:
class Derived : public Base
任何想法我在做什么错在这里?
编辑:
要拨打我已经宣布的功能:
typedef vector<App*>::iterator AppIterator;
AppIterator begin() { return l_Apps.begin(); }
AppIterator end() { return l_Apps.end(); }
我调用该函数像这样:
for (AppIterator it = begin(); it != end(); ++it)
{
(*it)->Initialize();
}
可能问题在这里?
看起来很好。你如何调用函数? – 2013-04-04 22:46:12
请仔细检查您尝试呼叫的功能是否标记为“虚拟”。 – 2013-04-04 22:47:18
告诉我们一些代码 – taocp 2013-04-04 22:47:56