zoukankan      html  css  js  c++  java
  • C++ 命名空间

    1,使用命名空间的原因

    最初引进的原因就是因为变量名总会因为一些情况发生重复定义,这个时候就会造成一些错误还难以寻找,全局变量本来作用域就在所有的app文件中,而且在一个项目中,有不同的人编写文件

    这个时候变量就非常容易发生冲突,当然如果用驼峰命名法也是可以的,但是名字太长可读性很低,加深了程序员的负担

    2,使用格式

     ::  域解析说明符   代表一种作用域的关系,左边代表上一级,右边代表所属成员  ,类内申明,类外定义函数时候也要用::代表要实现该类的这个函数

    namespace  node{   // node是名字,x.y是命名空间中所属变量,还可以有函数和类
       int x,y;  
    }
    
    using namespace node   //直接导入该命名空间,尽量少用,很容易导致命名污染,也就是命名冲突
    
    using node::x;    // 把该一个成员导入进来
    
    node::x       //使用格式

    例子:

    #include<cstdio>
    #include<iostream>
    namespace node{
        int x,y;
    }
    namespace dian{
        int x,y;
    }
    int main(){
        node::x=1;
        node::y=1;
        dian::x=2;
        dian::y=2;
        using node::x;
        std::cout<<x<<" "<<node::y<<"
    ";
        
    }

    3,其他 

    std  :   所有的库的变量函数类模板都在std命名空间内,每个库都有个一个命名空间,这样才让变量都不冲突

    命名空间嵌套:也就是嵌套使用,差不多,和类一样有了多层引用

    命名空间合并:如果命名空间的名字相同的,就算是不同的Cpp文件也会合并在一起,这也是命名空间的不连续性

  • 相关阅读:
    int (*p)[10] 与*p[10]的区别
    运算顺序
    关于linux开机进入grub问题的解决方法
    对于特殊字符串的处理方法
    学习进度条
    阅读《实例化需求》4-6章有感
    学习进度条
    阅读《实例化需求》1-3章有感
    问题账户需求分析
    2016年秋季个人阅读计划
  • 原文地址:https://www.cnblogs.com/Lis-/p/12369120.html
Copyright © 2011-2022 走看看