命名空间namespace

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

上面是展开空间中某个成员

下面是展开这个空间的全部成员

被展开的成员下次可以不用告诉操作系统空间名,直接使用成员。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值