C++--名字空间的定义

C++提供了一种称为**名字空间(namespace)**的机制,一方面表达某些声明是属于一个整体,另一方面表明它们的名字不会与其他名字空间中的名字冲突。
例如,我们尝试利用自己定义的"My_code"名字空间进行试验:

namespace My_code{     //定义My_code名字空间
	class complex{/*...*/};
	complex sqrt(complex);
	//...
	int main();
}
int My_code::main(){  //这个main()函数隶属于上面自己定义的My_code名字空间的main()函数,
	complex z{1,2};
	auto z2 = sqrt(z);
	std::cout<<'{'<<z2.real()<<','<<z2.image()<<"}\n";
	//...
}
int main(){//这个main()函数不是My_code名字空间的main()函数,只是全局名字空间中的函数。
	return My_code::main(); //这句代码表示回调My_code名字空间的main()函数,
}

通过将代码放在名字空间My_code中,就可以确保我们的名字不会和名字空间std中的标准库名字冲突。因为标准库确实支持complex算术运算,所以提前设置这样的预防措施是好的。
要想访问其他名字空间中的某个名字,最简单的方法是在这个名字前加上名字空间的名字作为限定 ( 例如std:cout 和 My code:main)。 “真正的 main() ”定义在全局名字空间中,换句话说,它不属于任何自定义名字空间、类或函数。要想获取标准库名字空间中名字的访问权,我们应该使用using指示:
using namespace std;
名字空间主要用于组织较大规模的程序组件,最典型的例子是库。使用名字空间,我们就可以很容易地把若干独立开发的部件组织成一个程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值