C++ | 命名空间_namespace

C语言中是不存在命名空间的概念的,因为整个C语言工程就是一个大型的命名空间。当工程规模小时,不会产生大问题;但是一旦工程的规模大,会用到大量的动态库,尤其是第三方开发的动态库时往往就会遇到命名冲突的问题。因为不同的厂家开发的动态库中全局变量的命名很可能重复,为了避免这个问题,C++中新增了命名空间这一概念,使得通过命名空间的限定从而使用相同名称的全局变量。

命名空间的用法:

方法一:using namespace xxx
方法二:xxx::函数名

通过C++的标准库iostream来对上述两种使用方式进行举例说明。

#方法一:
#include "iostream"
using namespace std;
int main()
{
    cout << "test namespace" << endl;
    return 1;
}

#方法二:
#include "iostream"
int main()
{
    std::cout << "test namespace" << std::endl;
    return 1;
}

Note:需要注意iostreamiostream.h的区别,前者是C++中最新的速度更快的标准库,而后者是最早期版本的标准库且其内部没有命名空间这一说法。目前都用前者。

代码举例



#include "stdafx.h"
#include "iostream"

namespace BigHouse
{
	int price = 100000;
	namespace State
	{
		struct housestate
		{
			int area=1000;
			int tall=1000;
		};
	}
}
namespace SmallHouse
{
	int price = 100;
	namespace State
	{
		struct housestate
		{
			int area = 10;
			int tall = 10;
		};
	}
}


int main()
{
	BigHouse::State::housestate BigHouseState;
	SmallHouse::State::housestate SmallHouseState;
	std::cout << "BigHouse price:"<< BigHouse::price << std::endl;
	std::cout << "BigHouse area:" << BigHouseState.area << std::endl;
	std::cout << "BigHouse tall:" << BigHouseState.tall << std::endl;
	std::cout << "SmallHouse price:" << SmallHouse::price << std::endl;
	std::cout << "SmallHouse area:" << SmallHouseState.area << std::endl;
	std::cout << "SmallHouse tall:" << SmallHouseState.tall << std::endl;

	system("spase");
}




最终输出结果如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yuanCruise

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

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

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

打赏作者

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

抵扣说明:

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

余额充值