C++命名空间

命名空间是C++中解决标识符命名冲突的机制,通过定义不同的上下文范围,如std命名空间用于标准库。它允许相同名称在不同上下文中使用,避免了自定义函数与标准库、第三方库以及项目内部模块间的名称冲突。程序员可以自定义命名空间,通过别名或`using`关键字简化对命名空间成员的引用。
摘要由CSDN通过智能技术生成

1、命名空间 (namespace) 可以帮助我们区分不同库中相同名称的函数, 类, 变量等. 使用了命名空间即定义了上下文. 命名空间就是定义了一个范围.

2、为了解决 C++ 标准库中的标识符与程序中的全局标识符之间以及不同库中的所有标识符之间的命名冲突. 标准 C++ 库的所有标识符都定义在一个名为 std 的命名空间中. 在程序中用到 C++ 标准库时, 使用 std 作为限定.

我们在写 “Hello World” 的时候就曾用到过命名空间 (namespace):

3、作用

命名空间是 ANSI C++ 引入可以由用户命名的作用域, 用来处理程序中常见的同名冲突. 在 C++ 程序中, 有大量的变量, 函数和类名. 如果他们都存在于同一个全局命名空间中, 会导致很多冲突.

  • 自定义函数与标准库函数重名
  • 程序中使用的名字与第三方库中名称相同
  • 同一项目不同模块中名字的冲突

命名空间的机制, 对于声明于其中的名称都进行了本地化:

  • 相同的名称可以在不同的上下文中使用, 而不会引起名称的冲突
  • C++ 中的标准库被定义到 std 命名空间中, 减少了与用户自定义名称的冲突
  • 在自己的程序中创建自己的命名空间, 避免本地化名称与外界冲突

 4、自定义命名空间

我们可以自己定义命名空间. 我们把一些全局分别放在各个名字空间, 从而与其他全局实体分隔开来.

格式:

1

2

3

namespace 命名空间名 {

    声明;

}

  • 变量 (可以带有初始化) 及常量
  • 函数 (可以是定义或声明)
  • 结构体
  • 模板
  • 命名空间 (在一个命名空间中又定义一个命名空间, 即嵌套的命名空间)

命名空间的作用是建立一些互相分隔的作用域. 把一些全局实体分隔开来, 以免产生名字冲突.

 5、命名空间成员的方法

一般方法: 引用命名空间成员时, 用命名空间名对名命名空间成员进行限定, 以区别同名标识符. (命名空间::命名空间成员名)

简化使用命名空间成员的机制:

  • 使用命名空间别名: namespace TV = Television; // TV等同Television
  • 使用格式: using 命名空间成员名 using ns1::Student; // Student等同ns1::Student
  • 使用: using namespace 命名空间名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学如逆水行舟,不进则退3038

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值