我在下面的代码的最后两行做错了什么?我收到一个错误:
请求
‘name’
中的成员‘t.std::_List_iterator<_Tp>::operator* [with _Tp = a*]()’
,该成员属于非类型‘a*’
#include <dlfcn.h>
#include <iostream>
#include "/home/developer/Desktop/MsgSphSDK1/test1_sdk/libsdk_MS.hpp"
#include <list>
#include <typeinfo>
#include <string>
using namespace std;
class a
{
public:
string name;
int age;
};
int main()
{
a* l = new a();
l->name = "me";
l->age = 1;
list<a*> ls;
list<a*>::iterator t;
for (t = ls.begin(); t != ls.end(); ++t)
cout << (*t).name << endl;
}
答案 0 :(得分:6)
你应该写
cout<<(*t)->name<<endl
t
是一个迭代器,(*t)
为您提供a*
(指向类a
对象的指针)。因此,要访问对象的成员,您应使用->
,而不是.
。