C++中类可以使用容器吗
就是比如classpoint{public:voidb();};voidpoint::b(){cout<<1<<endl;}intmain(){vector<point>...
就是比如
class point{
public:
void b();
};
void point::b(){
cout<<1<<endl;
}
int main()
{
vector<point> a;
vector<point>::iterator item=a.begin();
*item.b();
return 0;
}
这样为什么会报错? 展开
class point{
public:
void b();
};
void point::b(){
cout<<1<<endl;
}
int main()
{
vector<point> a;
vector<point>::iterator item=a.begin();
*item.b();
return 0;
}
这样为什么会报错? 展开
2个回答
展开全部
很奇怪的一个错误,将*item.b()改成(*item).b()即可。
我将point改成string,*item.b()改成cout<<*item.length()试了下,也是同样的错误。这就说明跟你写的类没有关系,应该是vector或者iterator的原因。
我找了好久也没找到这样的限制条件。我猜测发生这个错误的原因可能是因为iterator只是一个地址,用它来调用函数时一定要先确定类型?不管怎样,记下来,以后用的时候都用括号括起来总不会有错。
我将point改成string,*item.b()改成cout<<*item.length()试了下,也是同样的错误。这就说明跟你写的类没有关系,应该是vector或者iterator的原因。
我找了好久也没找到这样的限制条件。我猜测发生这个错误的原因可能是因为iterator只是一个地址,用它来调用函数时一定要先确定类型?不管怎样,记下来,以后用的时候都用括号括起来总不会有错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询