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

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

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

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

定义:

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

作用域访问符:::

命名空间的访问

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

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

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

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

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

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

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

使用命名空间的注意事项

  1. 命名空间中一般不写变量等带内存的东西
  2. 命名空间一般写在头文件中,用于数据类型的声明和功能函数的声明,函数实现还是写在源文件中(命名空间一般分文件编写)
  3. 如果两个命名空间重名,那么就会合并两个命名空间
  4. 命名空间中可以有命名空间(命名空间的嵌套)
相关推荐
柏木乃一几秒前
进程间通信IPC(1)IPC概述,匿名管道,进程池
linux·服务器·c++·进程间通信·ipc·匿名管道·进程池
lead520lyq1 分钟前
Golang Protoc Grpc实现微服务通信
开发语言·微服务·golang
BHXDML1 分钟前
Python:(一)变量、类型与 f-string —— 数据的载体
开发语言·python
蒹葭玉树11 分钟前
【C++上岸】C++常见面试题目--操作系统篇(第二十七期)
java·c++·面试
GHL28427109011 分钟前
TeamTalk-login_server学习
运维·服务器·c++·学习
学嵌入式的小杨同学12 分钟前
【Linux 实战】Makefile 自动化构建进阶:静态库 / 动态库通用模板(一键编译 + 系统安装)
linux·开发语言·git·vscode·spring·vim·ux
小孟的CDN14 分钟前
一维热传导方程的PINN求解——损失函数实时绘制
开发语言·python
Queenie_Charlie15 分钟前
一个奇数次
c++·位运算
透明的玻璃杯16 分钟前
VS2015+QT5程序发布
开发语言·qt
爱学习的阿磊22 分钟前
自定义操作符重载指南
开发语言·c++·算法