using directive 使用指令,与using declaration使用声明。

使用指令是把名字空间中的所有名字引入到当前作用域,而使用声明是把名字空间的某个名字引入到当前作用域中

语法如下

//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::,如果是全局名字空间总的需要加::

}

 

posted @ 2016-06-23 14:29  阿瞒123  阅读(2731)  评论(0)    收藏  举报