C++精进之路1:C++的命名空间

命名空间的含义

使用namespace{}命名的一段内存区域,在区域内的函数、类被限制于该命名空间中使用;

命名空间的使用方法

1、using编译指令

这种方法是非限定名称引用,在头文件中使用using namespace xxx的方法,把空间中的所有实体全部引入,访问空间的实体时就可以将空间中的实体当成通用成员使用;例如 using namespace std  ,STL库中的cout  cin  string map等等所有成员都可以直接使用;这种用法要求使用者对空间中的成员熟悉,否则在定义新的函数或者类时容易与空间中的实体重名,导致冲突;

一般而言大型程序不建议这种用法,初学的小程序为了节约时间可以直接这么用;

2、using声明机制

限定名称的引用,在头文件或者文件开头用using::xxx::xx声明,后续使用时可直接使用,如:

using::std::cout;

using::std::cin;

using::std::string;

……

好处是只将需要使用的实体引入,可以避免重名;

3、作用域限定符   ::符号

完全限定名称的用法,在使用的语句中将命名空间名称、成员名写出,指定完整的引用路径:

std::cout << "hello c++ " << std::endl;

好处是即用即写,成员的归属一目了然,不会引起重名冲突,坏处是需要多次调用时比较繁琐;

匿名空间

C++中,未指定的空间称为匿名空间,匿名空间是为了兼容C编程而存在的,由于C中不存在命名空间的说法,所以未指定空间的变量可以认为都在匿名空间中

实际使用时,在实体前加上::表示访问的是匿名空间,如:

::number=0;  //访问全局变量

::strlen(charPtr)   //访问全局函数

 

命名空间是一个黑洞,在工程中可以在若干个文件或者一个文件的多处出现,并可无限向里面堆内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值