当前位置:  编程技术>c/c++/嵌入式

C++命名空间实例解析

    来源: 互联网  发布时间:2014-10-27

    本文导语:  命名空间是C++非常重要的概念,本文就以实例形式对其进行深入分析,具体内容如下: 通常来说,在C++中,命名空间(namespace)的目的是为了防止名字冲突。每个命名空间是一个作用域,在所有命名空间之外,还存在一个全局...

命名空间是C++非常重要的概念,本文就以实例形式对其进行深入分析,具体内容如下:

通常来说,在C++中,命名空间(namespace)的目的是为了防止名字冲突。每个命名空间是一个作用域,在所有命名空间之外,还存在一个全局命名空间(global namespace),全局命名空间以隐式的方式声明,它并没有名字。在命名空间机制中,原来的全局变量,就是位于全局命名空间中(可以用::member的形式表示)。

一、定义命名空间

1、每个命名空间都是一个作用域

和其他作用域类似,在命名空间中的每个名字必须表示唯一实体,而在不同命名空间中,可以有相同名字的成员。

2、命名空间可以是不连续的

命名空间可以定义在几个不同的部分:

namespace nsp { 
  /* …… */ 
}  // 命名空间作用域后面无须分号

如果之前没有名为nsp的命名空间定义,则上述代码创建一个新的命名空间;否则,上述代码打开已经存在的命名空间添加一些新的成员。

3、命名空间是可以嵌套的

嵌套的命名空间是指定义在其他命名空间中的命名空间。嵌套的命名空间是一个嵌套的作用域,内层命名空间声明的名字将隐藏外层命名空间声明的同名成员:

int x = 20; 
namespace outer { 
  int x = 10; 
  namespace inner { 
    int z = x; 
  } 
} 
 
int main() 
{ 
  std::cout 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • JQuery的$命名冲突详细解析
  • java命名空间javax.naming类namingexception的类成员方法: getrootcause定义及介绍
  • 大家讨论一下Linux的命名规则
  • java命名空间javax.xml.soap接口name成员方法: getqualifiedname定义参考
  • 请问何时删除命名管道哪?
  • java命名空间javax.naming.event类namingevent的类成员方法: object_renamed定义及介绍
  • 批量重命名工具 Krename
  • java命名空间javax.naming接口context的类成员方法: getnameparser定义及介绍
  • 命名管道open时被阻塞了
  • java命名空间javax.naming.directory类searchcontrols的类成员方法: subtree_scope定义及介绍
  • solaris 安装 命名服务
  • java命名空间javax.swing类jtextpane的类成员方法: addstyle定义及介绍
  • 搞不懂TI的demo的线程命名,请教
  • java命名空间javax.naming接口namingenumeration<t>的类成员方法: hasmore定义及介绍
  • c# 命名空间和程序集
  • java命名空间javax.swing.text接口styleddocument的类成员方法: addstyle定义及介绍
  • 如何批量重命名
  • java命名空间javax.swing.text类stylecontext的类成员方法: addstyle定义及介绍
  • 日志写入命名管道的权限问题
  • java命名空间javax.swing.text类styleconstants的类成员方法: nameattribute定义及介绍
  • 命名管道问题
  • java命名空间javax.xml.soap接口name成员方法: geturi定义参考
  • 文件重命名的两种方式的区别




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3