3 回答
TA贡献1860条经验 获得超8个赞
using namespace std
c++ 中有名字空间的概念,它是为了解决不同版本代码的兼容问题
如:
namespace A
{
void test();
}
namespace B
{
void test();
}
如果
using namespace A;
就是使用A的函数
using namespace B;
使用B的函数
不写,
直接 A::test()
B::test() 也可以
std也是这个意思,
放在最前面即可,意思说,后面的采用std名字空间下的定义
TA贡献1111条经验 获得超0个赞
例子:
#include
void show(int a)
{
cout<<"age = "<
//表明命名空间在这里没有起到作用。
}
int main()
{
using namespace std;
int age;
cout<<"please input information:"<
cout<<"How ola are you?"<
cin>>age;
show(age);
return 0;
}
也就是说这种情况,只在这个函数中起作用,对于其他函数不起作用。
而放在#include后面的,就不会出现上面的问题,这就有点类似全局变量和局部变量的关系。函数内定义为局部变量,出了这个函数,别的函数不可以使用。
全局变量所有函数都可以使用。
TA贡献1780条经验 获得超3个赞
都可以,作用域不一样。
第一种是整个文件中都引入了std命名空间,第二种则是只在main函数中引入std命名空间。
如果为了贪图方便,直接用第一种写法也行,但是C++ Primer中建议用第二种写法,这样可以防止命名空间污染(在你不想引入它的地方也被引入了,就可能导致一些问题。)
另外无论如何,都不应该把using namspace 这种语句写在头文件中,很容易出问题的。
- 3 回答
- 0 关注
- 733 浏览
添加回答
举报