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

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

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

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

定义:

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

作用域访问符:::

命名空间的访问

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

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

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

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

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

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

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

使用命名空间的注意事项

  1. 命名空间中一般不写变量等带内存的东西
  2. 命名空间一般写在头文件中,用于数据类型的声明和功能函数的声明,函数实现还是写在源文件中(命名空间一般分文件编写)
  3. 如果两个命名空间重名,那么就会合并两个命名空间
  4. 命名空间中可以有命名空间(命名空间的嵌套)
相关推荐
艾莉丝努力练剑10 分钟前
【LeetCode&数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
c语言·开发语言·数据结构·学习·算法·leetcode·链表
还债大湿兄2 小时前
《C++内存泄漏8大战场:Qt/MFC实战详解 + 面试高频陷阱破解》
c++·qt·mfc
倔强青铜34 小时前
苦练Python第18天:Python异常处理锦囊
开发语言·python
u_topian5 小时前
【个人笔记】Qt使用的一些易错问题
开发语言·笔记·qt
珊瑚里的鱼5 小时前
LeetCode 692题解 | 前K个高频单词
开发语言·c++·算法·leetcode·职场和发展·学习方法
AI+程序员在路上5 小时前
QTextCodec的功能及其在Qt5及Qt6中的演变
开发语言·c++·qt
xingshanchang5 小时前
Matlab的命令行窗口内容的记录-利用diary记录日志/保存命令窗口输出
开发语言·matlab
Risehuxyc5 小时前
C++卸载了会影响电脑正常使用吗?解析C++运行库的作用与卸载后果
开发语言·c++
AI视觉网奇5 小时前
git 访问 github
运维·开发语言·docker
不知道叫什么呀6 小时前
【C】vector和array的区别
java·c语言·开发语言·aigc