使用命名空间std和使用std :: cin之间的区别

时间:2015-12-12 20:51:01

标签: c++

有人可以解释我们在声明时得到的内容:

using namespace std;

using std::cin;

有什么区别?

1 个答案:

答案 0 :(得分:1)

using namespace std;std命名空间中的每个符号导入当前命名空间。它是 using-directive 。来自c++ wiki page on namespaces

using namespace ns_name;
     

从使用指令之后的任何名称的非限定名称查找的角度来看,直到它出现的作用域的结尾,来自namespace-name的每个名称都是可见的,就好像它是在最近的封闭名称空间中声明的那样它包含using-directive和namespace-name。

using std::cin;仅将std::cin符号导入当前命名空间。这是使用声明。来自the same wiki page as above

using ns_name::name;
     

使得名称空间ns_name中的符号名称可以进行非限定查找,就像在相同的类作用域,块作用域或命名空间中声明一样,以及此using声明的出现位置。