Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1054678
  • 博文数量: 139
  • 博客积分: 1823
  • 博客等级: 上尉
  • 技术积分: 3403
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-05 09:54
文章存档

2014年(7)

2013年(16)

2012年(48)

2011年(68)

分类: C/C++

2013-07-04 16:25:33

在linux下编译一程序出错,但在VC++6.0中却正常。
错误报告如下:

点击(此处)折叠或打开

  1. 2.cpp: 在函数‘void display_vector(const std::vector<elemType>&, std::ostream&, int)’中:
  2. 2.cpp:24:2: 错误: ‘std::vector<elemType>::const_iterator’之前需要‘typename’,因为‘std::vector<elemType>’是一个有依赖的作用域
  3. 2.cpp:25:3: 错误: expected ‘;’ before ‘iter’
  4. 2.cpp:26:3: 错误: ‘end_it’在此作用域中尚未声明
  5. 2.cpp:28:17: 错误: expected primary-expression before ‘;’ token
  6. 2.cpp:29:10: 错误: ‘iter’在此作用域中尚未声明
  7. ……

源代码24,25,26行:

点击(此处)折叠或打开

  1. vector<elemType>::const_iterator
  2.                iter = vec.begin(),
  3.                end_it = vec.end();
根据错误提示,加上typename后OK,即代码改为:

点击(此处)折叠或打开

  1. typename vector<elemType>::const_iterator
  2.                iter = vec.begin(),
  3.                end_it = vec.end();

C++中的typename关键字有什么用呢?
请参考这篇文章:http://blog.csdn.net/pizzq/article/details/1487004
阅读(3262) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~