一开始总是不明白using namespace std;在c++中为什么出现。现在终于搞清楚了。
他的主要作用还是在于避免名字(我们自己写的代码时的命名和使用库无意暴露的命名)冲突。所谓库暴露的名字是这样的:
我们通常写代码是在c++文件开头使用using namespace std;这样就可以使用诸如cout和cin标准输入输出而不必使用"std::cout"添加前缀的方式来使用他们。
但是使用using namesapce std;却将标准库中的命名暴露给了用户,换句话你命的名时如果和库中名字相同就会有冲突出现。由此可见namespace其实就是一个“域”,他给你一个创造的独立的空间。在这个指定的空间里面的命名都在自己的掌控之中。
code:
namespace std_RS{
int i = 0;
}
namespace std_RS{
int i = 0;
}
这样时有误的,命名空间可以出现在你需要他的地方。而且只要名字相同就时同一个“域”。
namespace std_RS{
int i = 0;}
namespace std_RS{int j = 0;}
这样是可以的。