• 名空间(namespace)


    使用名空间(namespaces)我们可以将一组全局范围有效的类、对象或函数组织到一个名字下面。就是它将全局范围分割成许多子域范围,每个子域范围叫做一个名空间(namespaces)

    语法:

    namespace identifier
    {
      named_entities
    }
    identifier 是一个有效的标示符,named_entities 是该名空间包含的一组类、对象和函数例如:
    namespace myNamespace
    {
      int a, b;
    }
    要想在这个名空间外面访问这两个变量,我们必须使用范围操作符::
    myNamespace::a
    myNamespace::b
    而且名空间还可以避免全局对象或函数有可能重名而造成重复定义的错误,例如:
    
    
    //namespaces
    #include <iostream>
    using namespace std;
    
    namespace foo
    {
      int value() { return 5; }
    }
    
    namespace bar
    {
      const double pi = 3.1416;
      double value() { return 2*pi; }
    }
    
    int main () {
      cout << foo::value() << '
    ';
      cout << bar::value() << '
    ';
      cout << bar::pi << '
    ';
      return 0;
    }

    输出:

    5
    6.2832
    3.1416
    
    

    两个都叫做value函数同时存在,一个在名空间foo 下面定义,另一个在 bar下面定义,由于我们使用了名空间,这里不会产生重复定义的错误。

    一个代码的两端也可以分开写在同一个名空间下,如:

    namespace foo { int a; }
    namespace bar { int b; }
    namespace foo { int c; }

    变量a和c在同一个名空间foo下,b在bar下。
     

  • 相关阅读:
    docker原理(转)
    HTTP代理(转)
    租房的注意事项
    聊聊常见的网络攻击
    我眼中的 Nginx(一):Nginx 和位运算
    5G网络与4G相比,有什么区别?
    当 “HTTP” 先生遇上“S”小姐
    虎牙直播张波:掘金Nginx日志
    又拍云张聪:OpenResty 动态流控的几种姿势
    一文读懂 HTTP/2 特性
  • 原文地址:https://www.cnblogs.com/guozqzzu/p/3586450.html
Copyright © 2020-2023  润新知