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

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

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

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

定义:

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

作用域访问符:::

命名空间的访问

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

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

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

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

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

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

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

使用命名空间的注意事项

  1. 命名空间中一般不写变量等带内存的东西
  2. 命名空间一般写在头文件中,用于数据类型的声明和功能函数的声明,函数实现还是写在源文件中(命名空间一般分文件编写)
  3. 如果两个命名空间重名,那么就会合并两个命名空间
  4. 命名空间中可以有命名空间(命名空间的嵌套)
相关推荐
Ulyanov几秒前
大规模战场数据与推演:性能优化与多视图布局实战
开发语言·python·性能优化·tkinter·pyvista·gui开发
苦藤新鸡1 分钟前
14.合并区间(1,3)(2,5)=(1,5)
c++·算法·leetcode·动态规划
nsjqj2 分钟前
JavaEE初阶:多线程初阶(2)
java·开发语言
明天…ling6 分钟前
php底层原理与安全漏洞实战
开发语言·php
爱说实话13 分钟前
C# DependencyObject类、Visual类、UIElement类
开发语言·c#
智码未来学堂15 分钟前
C语言指针:打开通往内存世界的大门
c语言·开发语言
黎雁·泠崖17 分钟前
Java面向对象:对象数组核心+综合实战
java·开发语言
野生技术架构师24 分钟前
2026最新最全Java 面试题大全(整理版)2000+ 面试题附答案详解
java·开发语言
南村群童欺我老无力.26 分钟前
Flutter 框架跨平台鸿蒙开发 - 打造表情包制作器应用
开发语言·javascript·flutter·华为·harmonyos
学习3人组35 分钟前
AI视觉Python方向专业技术名词
开发语言·人工智能·python