namespace

C++命名空间主要用于避免全局作用域中的同名冲突,提供了一种组织和隔离代码的机制。它可以包含变量、常量、函数、类等成员,并通过命名空间限定符进行访问。命名空间可以嵌套,且可以随时添加新成员。使用`using`关键字可以方便地引入命名空间成员,但过度使用可能导致命名空间污染。无名命名空间限制在当前文件内使用,是防止名字冲突的另一种手段。了解并恰当使用命名空间是优化C++代码结构的关键。
摘要由CSDN通过智能技术生成

C++ namespace 的使用:

namespace(命名空间),用户可以用namespace关键字定义不同的命名空间,来防止某些函数,类,模板等的冲突(重复)。
命名空间解决的问题:同名冲突

命名空间的命名空间成员可以是声明的形式,也可以是定义的形式

命名空间中的成员是全局成员,只是包含在命名空间中了,使用这些成员时,要使用命名空间限定的形式:ns::a

命名空间成员类型:

变量(可以初始化)
常量
函数

结构体
模板
命名空间(命名空间的嵌套)

命名空间的别名:

用来代替较长的命名空间
生成:namespace TV=Televsion;

使用using关键字生命命名空间的成员

在using语句作用范围内使用using声明命名空间的某个成员之后,在这个作用域内使用这个成员都可以不用命名空间限定。
using 关键字一次只能声明一个命名空间成员

using namespace 命名空间;

可以一次声明命名空间的所有成员,但是使用的前提是不能有同名冲突

命名空间中的成员在本文件可以当作全局变量来使用

无名命名空间只能在本文件使用

命名空间注意事项:

1:命名空间的定义只能写在全局上,不能写在局部范围内
2:命名空间可以嵌套
嵌套命名空间中成员的调用:

3:命名空间可以随时入新成员:
#include “iostream”
namespace A
{
int a;
int b=10;
}
namespace A
{
int c;
}
int main()
{
}

4:命名空间定义后无分号

大型程序往往会使用多个独立开发的库,这些库又会定义大量的全局名字,如类、函数和模板等。当应用程序用到多个供应商提供的库时,不可避免地会发生某些名字相互冲突(重复)的情况。多个库将名字放置在全局命名空间中将引发命名空间污染(namespace pollution)。
更多细节可参考:
https://blog.csdn.net/fengbingchun/article/details/78575978?utm_source=app&app_version=4.15.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值