vector <CSquare*> pSquares;
//filled in vector
vector<CSquare*>::iterator tempIt = pSquares.begin();
tempIt->getName();
不确定还要添加什么,但如果您还需要其他任何帮助,请说出来。
再次感谢。
编辑:问题解决了,我不得不解除引用两次。下面的代码可以工作,我想只要其他人需要相同的帮助就可以了,感谢无论如何都要看。
vector <CSquare*> pSquares;
//filled in vector
vector<CSquare*>::iterator tempIt = pSquares.begin();
(**tempIt).getName();
答案 0 :(得分:5)
请记住,您需要取消引用迭代器才能获得指向的东西。因为这是vector<CSquare*>
,所以你的迭代器实际上是一个指向指针的指针 - CSquare
,所以你需要这样做:
(*tempIt)->getName();
答案 1 :(得分:4)
您需要额外的解除引用:
(*tempIt)->getName();
原因是您在向量中存储的内容是指针,因此*tempIt
是对指针的引用,您需要再次取消引用以访问CSquare
对象。