使用指令是把名字空间中的所有名字引入到当前作用域,而使用声明是把名字空间的某个名字引入到当前作用域中
语法如下
//test.cpp #include<iostream> //using namespace std;把名字空间std中的所有名字都引入当前文件作用域 using std::cout;//只把名字空间std中的cout引入到当前文件作用域 using std::endl;//只把名字空间std中的endlt引入到当前文件作用域 namespace A{ int i; void fun(){ i=10; } } int i; void fun(){ } using A::fun;//此时使用了using declaration ,但是如果在名字空间A中,有多个重载的函数fun,此using declaration就把所有的fun都引入到了这个作用域中 int main(){ A::i=100;//访问A名字空间A中的i ::i=1999;//访问全局名字空间中的i //fun();此时会出现冲突,无法分辨fun是A中的还是全局名字空间的。如果是A中的需要接A::,如果是全局名字空间总的需要加:: }