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

    名字空间
    C语言中的名字空间的划分:全局、局部、块
    C++认为:全局空间用起来非常方便,但如果把太多的东西放在全局空间中会造成命名冲突,所以C++引用了这样一种机制就是名字空间
    名字空间:把全局的命名空间进一步的分割,可以创建出一个个独立的命名空间防止相互之间的冲突
    1、定义名字空间:
    namespace name
    {
    变量:
    函数:
    结构、类:

    }
    2、名字空间的合并
    a、同名的命名空间会自动合并
    b、在同一个名字空间中标识符必须是唯一的

    3、定义与声明分开
    namespace n1//在名字空间中声明函数
    {
    void func(void)
    }
    //在名字空间外定义函数
    void n1::func(void)
    {

    }

    4、如何使用名字空间中的内容
    a、域限定符(::),直接使用,名字空间::标识符,这样的好处是绝不会冲突,但就是麻烦了点
    b、using namespace 名字空间;功能是把名字空间中的标识符对之后的代码全部公开
    c、using 名字空间::标识符,表示此标识符对后面的代码公开

    5、名字空间的嵌套
    名字空间可以嵌套,但使用时要逐层解析

    namespace n1
    {
      int num=10;
      namespace n2
        {
    i      nt num=20;
          namespace n3
            {
            int num=30;
            }
        }
    }
    n1::n2::n3::num=30;
    n1::n2::num=20;
    n1::num=10;
    using namespace n1::n2;

    6、全局空间归属为匿名空间
    在全局空间定义的标识符都属于这个匿名空间,匿名空间默认开放
    如果函数中有同名的标识符把匿名空间中的屏蔽了,可以使用空的域限定符

    注意:不同命名空间中的同名函数不构成重载,同一作用域下的同名函数叫重载

     
     
  • 相关阅读:
    Python获取 东方财富 7x24小时全球快讯
    Elasticsearch 环境配置
    可执行jar包与依赖jar包
    IDEA注释模板
    CKEditor
    解决让浏览器兼容ES6特性
    asp.net一个非常简单的分页
    Asp.Net真分页技术
    jsp选项卡导航实现——模板
    nodejs类比Java中:JVM
  • 原文地址:https://www.cnblogs.com/xiwen2017/p/9439264.html
Copyright © 2011-2022 走看看