C++名字空间

定义:

namespace 名字空间名{
  名字空间成员1;
  名字空间成员2;
  ......
}

注:名字空间成员可以是全局变量、全局函数、类型、名字空间

 

名字空间成员的使用:

:: 作用域限定操作符
名字空间名::要访问的成员

#include <iostream>

namespace nm1{    //定义名字空间 
        void func(void){
            std::cout<<"nm1的函数func"<<std::endl;
        }
    } 

namespace nm2{
        void func(void){
            std::cout<<"nm2的函数func"<<std::endl;
        }
    } 

int main(){
    
    nm2::func();//通过作用域限定符决定调用哪个函数
    nm1::func();
    
    
}

 

简化名字空间限定符的方法: 

当名字没有重复的时候,我们可以简化

方法一:名字空间指令

格式:using namespace 名字空间名;  

注:在这条指令后,指定名字空间的成员都可见,可以直接访问了 

#include <iostream>

namespace nm1{  
        void func(void){
            std::cout<<"nm1的函数func"<<std::endl;
        }
    } 

namespace nm2{
        void func(void){
            std::cout<<"nm2的函数func"<<std::endl;
        }
    } 

using namespace nm1; //简化名字空间指令 

int main(){
    
    func(); //名字空间限定符可以省略了 
        
}

 

方法二:名字空间声明

格式:using 名字空间名::名字空间成员;

注:把特定成员的作用域改为主函数 

 

 

::num     表示全局作用域的num

 

 

 

 

 

posted @ 2020-07-30 08:57  天子骄龙  阅读(180)  评论(0编辑  收藏  举报