概述

命名空间通常作为附加信息来区分不同库中相同名称的函数、类、变量。命名空间的本质是定义一个范围,该范围即为一个上下文,一个上下文中通常不允许出现相同名称的函数、类、变量。

定义

  • 定义格式

    • 普通的命名空间

      namespace namespace_name {
      VariableType variable;
      ReturnType funciton(ParameterType parameter) {
      return result;
      }
      }
    • 嵌套的命名空间

      namespace namespace_name {
      VariableType variable;
      ReturnType funciton(ParameterType parameter) {
      return result;
      }
      namespace subNamespce_name {
      VariableType subVariable;
      ReturnType subFunciton(ParameterType parameter) {
      return result;
      }
      }
      }
  • 命名空间中函数或变量的调用

    // 使用范围解析运算符调用命名空间中的函数或变量
    namespace_name::variable;
    namespace_name::funciton(parameter);
    namespace_name::subNamespce_name::subVariable;

using namespace 指令

  • 使用 using namespace 指令来简化指定命名空间中函数或变量的调用

    • 指定一个命名空间

      using namespace namespace_name;
      function(parameter);
    • 指定一个命名空间中的一个函数或变量

      using namespace_name::function();
      function(parameter);
      // 未指定的变量,需要使用命名空间名字加上范围解析符访问
      namespace_name::variable;
  • using 指令的作用域
    • 从 using 指令开始,到该范围结束

示例

  • 定义命名空间

    	namespace testSpace {
    int variable;
    void function() {
    cout << "testSpace" << endl;
    }
    // 嵌套的命名空间
    namespace subTestSpace {
    void function() {
    cout << "subTestSpace" << endl;
    }
    }
    }
  • main函数

    int main(int argc, const char * argv[]) {
    testSpace::function();
    testSpace::subTestSpace::function();
    return 0;
    }

最新文章

  1. Win下必备利器之Cmder
  2. 初识java泛型
  3. Matlab的68个小常识
  4. 重写List集合的ToString方法
  5. Android 之 Activity的生命周期
  6. hibernate反向生成映射文件报错
  7. HTTP错误汇总(404、302、200……)
  8. ng-init
  9. 通过js对表单对象的便捷获取
  10. devexpress GridControl 行指示列图标绘制
  11. 使用QGridLayout布局实现翻页效果
  12. 把SVN添加到windows服务
  13. 第35讲 Activity入门和跳转
  14. unity3D HTC VIVE开发-物体高亮功能实现
  15. 201521123066《Java程序设计》第五周学习总结
  16. I/O输入输出流
  17. Order笔记-项目导入
  18. JS核心笔记
  19. 为什么Python编程被国家教育如此重视?请开始你的表演!
  20. node+mysql,实现基本的增删改查,附带跟踪记录和运行时间记录

热门文章

  1. 【转】Key/Value之王Memcached初探:一、掀起Memcached的盖头来
  2. 微信开发jssdk入门
  3. asp.net获取站点根目录下子目录的名称
  4. 新浪微博.Net SDK第三版源代码和示例【最后一次更新了】
  5. 部署Eclipse中的Web项目到Tomcat服务器运行
  6. 使用Monkey进行压力测试
  7. 标签栏使用Demo二
  8. java:JDBC详解
  9. 手机网游开发指南 - 需要多NB的技术
  10. jQuery Layer 弹层组件