我有两个从第三个类继承的类,它们存储在一个列表中。
我正在尝试迭代该列表并调用每个类的已实现函数,但是代码无法编译。
这是我的代码:
class A
{
public:
virtual void foo ()=0;
};
class B :public class A
{
public:
void foo();
}
class C :public class A
{
public:
void foo();
}
std::list<A*> listOfClasses;
listOfClasses.push_back (new B());
listOfClasses.push_back (new C());
for(std::list<A*>::iterator listIter = listOfClasses.begin(); listIter != listOfClasses.end(); listIter++)
{
listIter->foo()
}
此代码无法编译,我收到以下错误消息 ( for the line listIter->foo()
):
'foo' : is not a member of 'std::_List_iterator<_Mylist>'
任何想法为什么?