命令空间(namespace)===> 用于防止名字冲突而引入的一种机制

命令空间(namespace)

用于解决同名实体:

  • 同名函数
  • 同名变量
  • 同名的类定义
  1. 防止名字冲突而引入的一种机制。系统中可以定义多个命名空间,每个命名空间都有自己的名字,不可以同名
  2. 可以看成一个作用域
  3. 命名空间的定义
# 类似 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;

posted @   爱新觉罗LQ  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2023-09-07 正则表达式匹配引号
2023-09-07 逻辑题
点击右上角即可分享
微信分享提示