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

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

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

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

定义:

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

作用域访问符:::

命名空间的访问

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

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

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

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

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

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

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

使用命名空间的注意事项

  1. 命名空间中一般不写变量等带内存的东西
  2. 命名空间一般写在头文件中,用于数据类型的声明和功能函数的声明,函数实现还是写在源文件中(命名空间一般分文件编写)
  3. 如果两个命名空间重名,那么就会合并两个命名空间
  4. 命名空间中可以有命名空间(命名空间的嵌套)
相关推荐
傻啦嘿哟5 小时前
某招聘平台爬虫:爬取招聘岗位数据,分析各城市薪资水平
开发语言·爬虫·python
2501_933670795 小时前
2026秋招量化分析岗技能栈:Python、SQL、统计建模、回测项目怎么准备
开发语言·python·sql
李少兄6 小时前
JavaScript 数据类型完全指南
开发语言·javascript·ecmascript
码匠许师傅6 小时前
【设计模式精讲】29.行为型模式总结与对比(Behavioral Patterns Summary)
c++·设计模式·uml
Seoyoneh6 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
啦啦啦啦啦zzzz6 小时前
Logger的组装(c++20)
c++·算法·c++20
Tangyuewei6 小时前
Java 写 Agent:模型只是组件
java·开发语言
小玮看世界7 小时前
[Python]从合并区间到传感器融合区:合并区间在传感器区域融合的实际落地
开发语言·python
繁星蓝雨8 小时前
C++的设计与演进大纲(如何从C语言一步步成长为C++)
c语言·开发语言·c++·c++历史·c++演进
Evand J8 小时前
【MATLAB例程,图像降噪滤波9】自适应维纳滑动窗口滤波(Wiener)图像降噪、方法对比,有中文注释
开发语言·图像处理·计算机视觉·matlab·滑动窗口·滤波·降噪