浅谈C++命名空间

本文介绍了C++中的命名空间概念,旨在解决C语言中的命名冲突问题。命名空间允许程序员定义一个作用域,避免标识符名称冲突。文中详细阐述了三种命名空间的使用方式:直接使用全名、using声明以及using命名空间。通过实例展示了如何通过作用域限定符访问命名空间内的对象,以及如何通过using关键字引入命名空间内容。
摘要由CSDN通过智能技术生成

2021.11.23

由于C语言存在命名冲突问题(在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字 污染,namespace关键字的出现就是针对这种问题的。)于是C++引入了命名空间这个概念,它可以定义一个域,eg:

namespace lhr (命名空间名字一样的时候会被合并成为一个)(命名空间里面可定义函数、变量、类型)

{

       int rand = 0; //这个rand任然是全局变量,放在静态区里面。
}

命名空间实质是让编译器编译的时候忽略你写的那段代码,当你想用的时候,可以通过命名空间名字加上作用域限定符加引用对象的方式来使用(bit::rand)。

下面讲讲述命名空间的三种使用方式:

(1)如上面讲的可以通过命名空间名字加上作用域限定符加引用对象的方式来使用

  eg:

int main()

{

          printf("%d\n",lhr::a);

          return 0;

}

(2)通过using将命名空间的对象引入

    eg:

 using lhr::a;

 int main()

{

           printf("%d\n",lhr::b);

              printf("%d\n",a);

(3)使用using namespace 命名空间名称引入(也即全部引入)

    eg:

using namespce N;

int main()

{

           printf("%d\n", N::a);

           printf("%d\n", b);

           Add(10, 20);

           return 0;

 }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值