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

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

     
     
  • 相关阅读:
    jquery.js 一个非常不错的本脚库。
    AjaxPro 框架学习 (支持vs2003/vs2005)
    利用HttpResponse来导出excel文件.
    一个比较好的WEB时间控件
    CCR 编写一个不用创建线程,不用考虑资源互斥的多线程程序
    页面优化 .net 版
    [转]window.opener用法
    导出excel文件 解决科学计数法问题
    抽象类和抽象方法的特征和用途
    超强悍的右键菜单
  • 原文地址:https://www.cnblogs.com/xiwen2017/p/9439264.html
Copyright © 2020-2023  润新知