1.namespace的价值
非常简单,说白了就是防止名字冲突了,系统不知道是那个.
看下面代码和解释
#include<stdio.h>
#include<stdlib.h>
int rand = 10;
int main()
{
printf("%d\n", rand);
return 0;
}
你看这个rand,系统库函数里也有rand,那么你的这个rand到底是int类型变量,还是一个函数。你看,这就导致系统难以识别。
2.namespace的定义和使用
非常简单,就是用namespace关键字定义一个范围,并且给这个范围取个名字,等下次你想调用你设置的这些个,变量,函数,什么个玩意,你怕跟别的冲突了你就在设置的时候给他划一块范围,等你想用的时候,你告诉系统什么范围的就不会和别的冲突了。
看下面代码和解释
namespace Gua
{
int rand = 10;
}
int main()
{
printf("%d\n", rand);
printf("%d\n", Gua::rand);
return 0;
}
你看,上面这个打印rand就和系统的rand函数冲突了,系统不知道你要那个就报错了,但下面这个你告诉了系统范围的名称和rand,系统就知道你到底要找那个了。
注意:1.namespace只能定义在全局
2.namespace不影响变量生命周期
3.namespace里面也可以定义namespace
4.项目中又多个文件中定义了同名的namespace系统会认为是一个namespace,不会冲突
5.C++标准库都放在一个叫std的命名空间中
6.如果你完全确认命名空间中的成员不会和别的起冲突,并且不想写太多“::”你可以用
using N::menber
using namespace N
上面是展开空间中某个成员
下面是展开这个空间的全部成员
被展开的成员下次可以不用告诉操作系统空间名,直接使用成员。