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文件也会合并在一起,这也是命名空间的不连续性

  • 相关阅读:
    HDU4474 Yet Another Multiple Problem BFS搜索
    HDU4473 Exam 数学分析
    2013ACM多校联合(4)
    POJ1273 网络流...
    HDU4472 Count 递推
    POJ1149 PIGS 网络流
    UVA10881 Piotr's Ants 想法题
    javascript js string.Format()收集
    修改 设置 vs.net 网站 调试 设为 起始页
    【转】HTML5杂谈 概念与现行游戏 割绳子 宝石迷阵
  • 原文地址:https://www.cnblogs.com/Lis-/p/12369120.html
Copyright © 2011-2022 走看看