一.命名空间
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。

命名空间定义
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名
空间的成员。

  1. 普通的命名空间
    namespace N1 // N1为命名空间的名称
    {
    // 命名空间中的内容,既可以定义变量,也可以定义函数
    int a;
    int Add(int left, int right)
    {
    return left + right;
    }
    }
  2. 命名空间可以嵌套
    namespace N2
    {
    int a;
    int b;
    int Add(int left, int right)

注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。
二.命名空间使用
命名空间中成员该如何使用呢?比如:
{
return left + right;
}

namespace N3
{
int c;
int d;
int Sub(int left, int right)
{
return left - right;
}
}
}

  1. 同一个工程中允许存在多个相同名称的命名空间
    编译器最后会合成同一个命名空间中。
    namespace N1
    {
    int Mul(int left, int right)
    {
    return left * right;
    }
    }
    namespace N {
    int a = 10;
    int b = 20;
    int Add(int left, int right)
    {
    return left + right;
    }
    int Sub(int left, int right)
    {
    return left - right;
    }
    }
    int main()
    {
    printf("%d\n", a); // 该语句编译出错,无法识别a
    return 0; }

命名空间的使用有三种方式:
1.加命名空间名称及作用域限定符
2.使用using将命名空间中成员引入
3.使用using namespace 命名空间名称引入

命名空间的定义及使用相关推荐

  1. 【C++入门】命名空间的定义与使用

    目  录 1 命名空间 1.1 命名空间定义 1.2 命名空间使用 1 命名空间 在C/C++中,变量.函数和类都是大量存在的,这些变量.函数.类的名称将都存在于全局作用域中,可能会导致很多冲突. 使 ...

  2. C++无名命名空间中定义的函数不使用造成“-Wunused-function”警告问题

    C++无名命名空间使用问题 零.前言 一.问题 二.无名空间 三.gcc编译器警告和错误提示参数 四.问题解决 五.完整代码演示 零.前言 C++ 语言就是博大精深,各种语法问题,都值得深入探究一下, ...

  3. 命名空间的定义和使用

    ►大型应用程序经常使用来自不同厂商的开发库,几乎不可避免会使用相同的名字,也就是说一个库中定义的名字可能与其他库中的名字相同而产生冲突,使得程序员不能组合各自独立的开发库到一个程序中. ►命名空间是用 ...

  4. 命名空间的定义、使用和存在的意义

    命名空间 文章目录 命名空间 前言 命名空间概念引入 1.1 命名空间定义 1.1.1 命名空间的一般定义方式 1.1.2 命名空间的嵌套定义 1.1.3 不连续的命名空间 1.2 命名空间使用 1. ...

  5. C++ using namespace 命名空间的定义与使用

    #include <iostream> using namespace std;namespace A {int x, y;void fun() {cout << " ...

  6. C++ 笔记(03)— 命名空间(概念、定义、调用、using name 指令、嵌套命名空间)

    1. 命名空间概念 在 C++ 应用程序中, 您可能会写一个名为 func() 的函数,在另一个可用的库中也存在一个相同的函数 func() .这样,编译器就无法判断您所使用的是哪一个 func() ...

  7. python中的方法需要定义_Python中规范定义命名空间的一些建议

    API的设计是一个艺术活.往往需要其简单.易懂.整洁.不累赘. 很多时候,我们在底层封装一个方法给高层用,而其它的方法只是为了辅助这个方法的. 也就是说我们只需要暴露这个方法就行,不用关心这个方法是怎 ...

  8. 【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )

    文章目录 命名空间简介 自定义命名空间 自定义嵌套命名空间 域作用符 命名空间 与 include 区别 命名空间定义与使用完整代码 命名空间简介 命名空间 ( namespace ) : 1.命名空 ...

  9. C++ 命名空间解释

    using关键字 如果在程序中需要多次引用某个命名空间的成员,那么按照之前的说法,我们每次都要使用范围解析符来指定该命名空间,这是一件很麻烦的事情.为了解决这个问题,人们引入了using关键字.usi ...

最新文章

  1. EBS查询当前LOV SQL
  2. 如何成为一名现代的Linux程序员
  3. 干掉MessageBox,自定义弹出框JMessbox (WindowsPhone)
  4. 用js取1-100的随机数
  5. http_build_query的用法
  6. mysql中sql批量插入_MySQL批量SQL插入性能优化
  7. 2apt-get命令,deb包安装,源码安装
  8. 阿里研究员:缩短软件开发中的反馈弧
  9. mysql 数据库还原 不齐_请教mysql数据库还原问题。
  10. 浅谈Spring IOC和DI及Spring工厂类
  11. App流量测试--使用安卓自身提供的TCP收发长度统计功能
  12. scrapy爬取某网站文章
  13. php smtp邮件类,php利用smtp类发送邮件
  14. 基于 Spring 实现管道模式的最佳实践
  15. deploy mysql_Deploy Mysql
  16. 一文详解 Java 的八大基本类型!
  17. 在VB中调用API函数
  18. ArcGIS地形图配准并生成三维模型(附练习数据下载)
  19. Poker Ⅱ 机械键盘使用说明书 自备
  20. Android 中Goolgle 相关服务的移植[转]

热门文章

  1. SCO UNIX快速入门
  2. 笔记本电脑桌面上计算机打不开怎么办,笔记本电脑双击桌面图标打不开该怎么处理...
  3. Postgres-xl集群修改最大连接数max_connections
  4. vue、H5、移动端 读取NFC
  5. java迭代器遍历list_使用Java中的迭代器遍历ArrayList
  6. 小米4联通版刷flyme,工程模式无法选择网络
  7. 7-6 悼念512汶川大地震遇难同胞 (20 分)
  8. ARM汇编指令_u-boot
  9. IT运维的365天--003关于Edge浏览器的种种
  10. 【实用】python制作公式图像