c++中namespace的使用

本文介绍了C++中的命名空间namespace的使用,包括其用于解决相同名称的函数、类、变量冲突的问题,以及如何通过using关键字简化代码。通过示例展示了namespace的声明位置和嵌套使用,帮助理解其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.初识namespace

相信很多小伙伴在初学c++时一定对using namespace std;这条语句充满了好奇,命名空间namespace到底是用来干嘛的呢?
其实很简单,就是用来区分不同作用域下相同名字的函数、类、变量,听起来有点抽象,举一个简单的例子。
在某个年级里,1班有个马云,3班有个马云,某次年级开会时,点名批评马云,怎么区分是哪个马云呢,就需要说清楚是哪个班的。如果是3班的,就需要用“3班::马云”来表示,这就是命名空间的简单使用。
在c++里就可以这样表示:

#include <iostream>
using namespace std;

namespace first{
	int a = 10;
}

namespace second{
	int a = 11;
}

int main()
{
	cout << first::a << endl;
	cout << second::a << endl; 
	
	return 0;
}

输出结果:
10
11

2. namespace的位置

使用using namespace,该语句后面使用的变量或函数名不需要再重复声明first::func()。

#include <iostream>
using namespace std;

namespace first{
	void func(){
		cout << "hello";
	}
}

namespace second{
	void func2(){
		cout << " world!" << endl; 
	}
}

int main()
{
	using namespace first;
	func();
	using namespace second;
	func2();
	
	return 0;
}

输出结果:hello world!

3. namespace的嵌套使用
#include <iostream>
using namespace std;

namespace first{
	int a = 10;
	namespace second{
		int a = 11;
	}
}

int main()
{
	using namespace first;
	cout << a << endl;
	cout << second::a << endl;	
	
	return 0;
}

输出结果:
10
11

参考:
[1]: https://blog.youkuaiyun.com/qq_40416052/article/details/82528676?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.baidujs
[2]: https://blog.youkuaiyun.com/yao_zhuang/article/details/1853625

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值