使用命名空间时为什么出错呢?

zyp2kyear 2003-10-16 11:58:22
#include "stdafx.h"
#include "iostream.h"
#include "string"

using namespace std;

int main(int argc, char* argv[])
{
string ch="Hello,world.\n";
std::cout<<ch;

return 0;
}

我在The c++ programer language的PDF书中看到此例,在VC++(win32)为什么编译错误呢?
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
williamVII 2003-10-16
  • 打赏
  • 举报
回复
NOD
Hot_Forever 2003-10-16
  • 打赏
  • 举报
回复
库文件用<>,自己写的头文件用""
njSeeWhy 2003-10-16
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include "iostream.h"
#include "string"
改成
#include "stdafx.h"
#include <iostream>
#include <string>
试试
houdy 2003-10-16
  • 打赏
  • 举报
回复
前面说的都对,我就说说原因吧:在C++的标准库中引入了命名空间这个概念,所有的标注库都包含在"std"这个命名空间内,所以当你包含标注库时,就要使用命名空间。C++的标注库和旧的库的区别在于标准库没有.h这个后缀,旧的库有。
还有就是<>和""有区别的,正如nirvana_li(东成西就)所说的,<>是在标准路径下搜索,一般是在include目录下,""不是在标注路径下,一般是你项目所在的目录搜索。所以一般如果要包含你自己定义的类的头文件,用#include "MyClass.h";若是包含标注库的话,用#include <iostream.h>.
nirvana_li 2003-10-16
  • 打赏
  • 举报
回复
同意njSeeWhy(北海鲲鹏) 的。
#include "stdafx.h"
#include "iostream.h"
#include "string"
改成
#include "stdafx.h"
#include <iostream>
#include <string>
“ ”不先在标准路径下面搜索,<>先在标准路径下搜索。
smartlife 2003-10-16
  • 打赏
  • 举报
回复
tongyi!

69,337

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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