命名空间详解

//main.cpp

#include<iostream>
#include<stdio.h>
#include"a.h"
using namespace b;
int main()
{
	
	a::c1();	//调用的是命名空间a里的函数
	c1();//因为用了using namespace b 所以可以省略 b::

	printf("%d\n", a::a);
	system("pause");
	return 0;
}

/*
命名空间的说明:
1:为了防止名称的冲突,假如有两个或多个相同的类名,函数名,变量名,那就可以把他们定义在不同的命名空间下
2:访问命名空间里的实体,调用形式为:命名空间名::实体名
3: ::可以理解为作用域符
*/

//a.cpp

#include<stdio.h>
namespace a
{
	int a = 3;
	void c1()
	{
		printf("a-c1\n");
	}
	void c2()
	{
		printf("a-c2\n");
	}

}
/*在前面已经定义了命名空间a的前提下,再次命名也是可以的,相当于打开
 a往里添加新的实体不过要在主函数里调用他们,得先在.h文件里添加声明*/
namespace a
{
	int b = 3;
	void c3()
	{
		printf("a-c1\n");
	}
	void c4()
	{
		printf("a-c2\n");
	}

}
namespace b
{
	void c1()
	{
		printf("b-c1\n");
	}
	void c2()
	{
		printf("b-c2\n");
	}
}

//a.h

#ifndef   a_h
#define   a_h

namespace a
{
	extern int a;
	//extern int b;
	void c1();
	void c2();
}

namespace b
{
	void c1();
	void c2();
}

#endif // !1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值