指针列表C ++

use*_*221 2 c++ pointers iterator list std

下面的代码:

#include <iostream>
#include <list>
class A
{
    public: 
    void printHello(){std::cout << "hello";}
};
int main(int argc, char *argv)
{
    std::list<A*> lista;
    lista.push_back(new A());
    for(std::list<A*>::iterator it=lista.begin();it!=lista.end();++it)
    {
        //how to get to printHello method?
        //it doesn't work
        it->printHello();       
    }   
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码无效。我的问题是如何通过迭代器获取方法'printHello'?谢谢。

Dan*_*rey 6

你要

(*it)->printHello();
Run Code Online (Sandbox Code Playgroud)

作为*it返回的存储指针A*,只有这样你才能申请->