学习C++的第三天(命名空间)

命名空间(和C语言中的结构体类似)
当一个程序中出现两个相同的变量时,比如下面的population和capital,这时候要用到population和capital时,计算机就不知道要用那个population、capital,就会出错,所以为了避免这样的错误,我们用命名空间来解决这样的麻烦,如下,相当于指明了population和capital,China::population中国的人口,Japa::population日本的人口,这样计算机就可以识别了。

#include <iostream>
#include <string>     //string 变量字符串头文件

namespace China {        //namespace 命名空间,China 命名空间名字;
	float population=14.1;     
	std::string capital="北京";
	//两个变量population和capital
}
namespace Japa {
	float population=14.1;
	std::string capital="北京";
}

int main {
	std::cout <<"首都:" <<China::capital <<std::endl;
	std::cout <<"人口" <<China::population <<std::endl;
	std::cout <<"首都:" <<Japa::capital <<std::endl;
	std::cout <<"人口" <<Japa::population <<std::endl;
	
	system("pause");
	return 0;
}

那么问题来了,当有多个相同的变量的时候,我们还是要用China::population、Japa::populatin这种方式来解决吗?有没有简便一点的方法呢?
当然这样解决肯定是没有问题的,只要代码敲的合适,但是这样写特别麻烦啊,比如要某公司开发一个大项目,一个大公司不可能只要一个程序员吧,所以每个人负责这个项目的一部分,这时候就难免出现很多的相同变量,那每个都要以China::population、Japa::populatin这种方式来解决就太麻烦了,而且对于每个程序员来说都很冤枉,在自己写的部分还要用这种方式,真的太麻烦了,所以就有了以下这种方式using namespace China;相当于提前声明了后面的population、capital,当后面有population、capital时,如果他的前面没有类似于Japa::capital、Japa::population 这样的声明,则直接默认为China::population、China::capital,这样就省去了每个变量前面都要加China的麻烦。看似是一个小改变,其实作用只要用了才知道。

#include <iostream>
#include <string>     //string 变量字符串头文件

namespace China {        //namespace 命名空间,China 命名空间名字;
	float population=14.1;     
	std::string capital="北京";
	//两个变量population和capital
}
namespace Japa {
	float population=14.1;
	std::string capital="北京";
}
using namespace China;
int main {
	std::cout <<"首都:" <<capital <<std::endl;
	std::cout <<"人口" <<population <<std::endl;
	std::cout <<"首都:" <<Japa::capital <<std::endl;
	std::cout <<"人口" <<Japa::population <<std::endl;
	
	system("pause");
	return 0;
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~猫七寻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值