为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的VC++ 6.0 编译的话,不用using namesapce std 也能用cout,而且反而加了using namesapce std 会编译出错。

#include <iostream.h>

#include <stdlib.h>


namespace A

{

int x = 1;

void fun1()

{

cout<<"A"<<endl;

}

}


namespace B

{

int x = 2;

void fun()

{

cout<<"B"<<endl;

}

}


using namespace A;

int main(void)

{

fun1();

cout<<A::x<<endl;

cout<<B::x<<endl;

system("pause");

return 0;

}


正在回答

5 回答

编译器问题,用DEVCPP吧

0 回复 有任何疑惑可以回复我~
#1

古风_0001 提问者

非常感谢!
2016-07-03 回复 有任何疑惑可以回复我~

.h是C语言的头文件,没有命名空间的定义,没有.h才是C++的头文件

0 回复 有任何疑惑可以回复我~

如果你用的是vs2015编译器的话会提示cout没有标识符


0 回复 有任何疑惑可以回复我~

你应该用的是vc6.0的编译器吧<iostream.h>是比较老的C++的头文件的版本,而namespace是98年才被加入C++标准的,所以<iostream.h>里面是没有std这么个命名空间的,当使用 <iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现。头文件<iostream>则没有定义全局命名空间,使用时必须使用namespace std才能正确使用cout。

0 回复 有任何疑惑可以回复我~

那你试试把所有的cout和endl都加上std::试试  ,如果错了那就是编译器问题吧

int main(void)改成int main()

目测你的代码没有什么问题  调试一下

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之起航篇
  • 参与学习       291032    人
  • 解答问题       760    个

C++亮点尽在其中,本课程是在C语言基础上的一个延伸,得以升华

进入课程

为什么我的VC++ 6.0 编译的话,不用using namesapce std 也能用cout,而且反而加了using namesapce std 会编译出错。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信