命令空间(namespace)===> 用于防止名字冲突而引入的一种机制
命令空间(namespace)
用于解决同名实体:
- 同名函数
- 同名变量
- 同名的类定义
- 防止名字冲突而引入的一种机制。系统中可以定义多个命名空间,每个命名空间都有自己的名字,不可以同名
- 可以看成一个作用域
- 命名空间的定义
# 类似 java 中包的概念:在不同 cpp 文件中创建同名的方法等
namespace 命名空间名
{
.....
}
1. 命名空间的定义
我们现在想在2个 cpp 文件中都写一个同名的方法 (multiple definition of radius())
现在我们使用 namespace 命名空间来解决
命名空间的定义可以不连续,甚至可以写在多个文件中
- 如果你之前没有定义这个 namespace,那么 "namespace 命名空间名" 这种写法,就相当于定义了一个命名空间
- 如果你之前已经定义这个 namespace 命名空间,那么就相当于打开已经存在的命名空间,并为其添加新成员的声明
2. 外界如何访问某个命名空间中的 radius() 函数呢?
格式:命名空间名::实体名 【:: 称为 作用域运算符】
我们想在 main 函数中调用 zhangsan 的 radius() 函数(跨文件调用)
在头文件中,利用命名空间包裹 方法声明
然后在 main 中引入头文件
然后就可以调用了
3. using namespace 使用某个命名空间(注意不要引起二义性)
using namespace zhangsan;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2023-09-07 正则表达式匹配引号
2023-09-07 逻辑题