行业知识
【C++】命名空间 ( namespace )
2026-10-31 00:01:14
来源:互联网转载
目录搁这
- 什么是命名空间
- 命名空间的作用
- 如何定义命名空间
- 命名空间的种类
- 如何使用命名空间内的成员
- 作用域限定符
- 命名空间展开
- 命名空间全部展开
- 命名空间部分展开
- ���结
什么是命名空间
命名空间是一种用来避免命名冲突的机制,它可以将一段代码的名称隔离开,使其与其他代码的名称不冲突;
命名空间的原理是将一个全局的作用域分成一个个命名空间,每个命名空间是个单独的作用域,同时若是在同一个作用域内可能出现的命名冲突也不会造成影响,有效避免了命名空间的污染;
命名空间的作用
在学习C语言的过程中我们知道有一个函数叫做rand函数,该函数用于生成伪随机整数;
#includeint rand = 10;int main(){printf("%d\n",rand);return 0;}上面的代码在.c文件下的情况执行会得出什么结果?
代码被运行成功且没有什么错误;
但若是在包含rand函数所在的头文件为前提的结果是什么?
当包含了rand函数所在的头文件即报错;
原因是,在程序运行时,计算机先会在局部寻找变量,当局部内未找到时则回去全局找;
在全局找时找到了两个 rand (一个为头文件内的rand函数,一个为所创建的变量rand);
此时也不知该打印哪一个rand,这就叫命名冲突;
但在C++中,出现了一个新的概念叫做命名空间,一般来说,rand这类的函数都存放于C++中标准库类型对象的命名空间std中;
若是在编译器中执行这段代码结果是什么;
#include//标准输入输出流头文件using namespace std;//展开标准库命名空间stdnamespace Sweet{//设置命名空间且名为Sweetint rand = 10;}int main(){cout int rand = 10;}using namespace Sweet;int main(){cout //定义一个名为A1的命名空间int a = 0;int b = 20;//变量void Add()//函数{cout int test1;double test2;};}namespace A2 {//定义一个名为A2的命名空间int a = 10;int b = 21;void Add(){cout int test3;double test4;};}int main(){cout int mi = 0;int qi = 5;namespace A2 {int qi = 10;namespace A3 {int mi = 25;}}}int main(){cout int mi = 0;int qi = 5;namespace A2 {int qi = 10;namespace A3 {int mi = 25;}}}int main(){cout coutcout
下一篇:ec服务器怎么增加血量?