小工具知识网

当前位置: 首页 > 行业知识 > 【C++】命名空间 ( namespace )

行业知识

【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 

上一篇:FTP传输,原理深度解析、应用广泛性与优势探讨

下一篇:ec服务器怎么增加血量?