【C++】命名空间(namespace)

命名空间是用来组织和重用代码的编译单元

在编写代码时写的程序不可能所有的标识符都没有重名现象,在多人协作开发时更加不可控,尤其对于库来说问题更加严重。为了解决重名现象,通过命名空间来避免冲突。

命名空间用于帮助实现代码的管理(代码的封装)

定义:

c++ 复制代码
namespace 命名空间名
{
    命名空间成员
}

作用域访问符:::

命名空间的访问

(1)using声明:开放单个成员的访问权限

基本格式:using 命名空间名::空间成员名;

(2)using指示:开放某个命名空间中所有的成员的访问权限

基本格式:using namespace 命名空间名;

(3)命名空间名称访问:直接使用命名空间名称访问其中的成员,不会开放命名空间权限

基本格式:命名空间名::空间成员名;

给命名空间取别名:namespace 别名=命名空间名

使用命名空间的注意事项

  1. 命名空间中一般不写变量等带内存的东西
  2. 命名空间一般写在头文件中,用于数据类型的声明和功能函数的声明,函数实现还是写在源文件中(命名空间一般分文件编写)
  3. 如果两个命名空间重名,那么就会合并两个命名空间
  4. 命名空间中可以有命名空间(命名空间的嵌套)
相关推荐
姓蔡小朋友3 分钟前
LUA脚本
开发语言·junit·lua
liulilittle8 分钟前
OPENPPP2 Code Analysis Two
网络·c++·网络协议·信息与通信·通信
悟能不能悟11 分钟前
Java CheckFailedException会去获取message.properties的内容吗
java·开发语言
shang_xs14 分钟前
Java 25 ScopedValue - 作用域内安全访问的一种实现
java·开发语言·安全
向量引擎16 分钟前
[架构师级] 压榨GPT-5.2与Sora 2的极限性能:从单体调用到高并发多模态Agent集群的演进之路(附全套Python源码与性能调优方案)
开发语言·人工智能·python·gpt·ai·ai写作·api调用
小白学大数据23 分钟前
Java 异步爬虫高效获取小红书短视频内容
java·开发语言·爬虫·python·音视频
solar应急响应25 分钟前
域控宕机!如何强制夺取五大角色恢复业务?
开发语言·php
数据的世界0130 分钟前
C# 获评2025年度编程语言-编程语言排行榜2026年1月
开发语言
2201_757830871 小时前
Bean原理篇
java·开发语言
草原上唱山歌1 小时前
推荐学习的C++书籍
开发语言·c++·学习