用VC++6.0做一个简单迭代器测试出错

sniper08 2008-10-14 01:48:02

#include<iostream>
using namespace std;
class iterator
{
private:
char *p;
public:
iterator(char *str):p(str){}
char*& operator++()
{
p+=1;
return p;
}
};
int main()
{
char *str="abcd";
iterator itr(str);
char *p1=++itr;
cout<<*p1<<endl;
return 0;
}

出错:F:\code\C++\ddddd\dddd.cpp(18) : error C2872: 'iterator' : ambiguous symbol
而将前面改成
#include<iostream.h>
//using namespace std;
就对了,什么原因啊,是不是编译器有问题?
...全文
139 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kinglin_sky 2008-10-14
  • 打赏
  • 举报
回复
stl库中已经有这个iterator了,你如果用using nanespace std 就等于包含了原来库里面的iterator了,容易出现上面的错误,如果不用using namespace std 就没有包含,所以正确!
sniper08 2008-10-14
  • 打赏
  • 举报
回复
还是感觉VC对好些标准后的东西支持得不是很好,该换个了
devil_zuiai 2008-10-14
  • 打赏
  • 举报
回复
"ambiguous” (歧义),估计是库里面有这个关键字吧。
taodm 2008-10-14
  • 打赏
  • 举报
回复
stl库里已经有叫iterator的东东了。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧