C++笔记 命名空间 namespace,全局作用域符::的使用

/***************   namespce命名空间主要用途    ***********************/

//   1.用来解决命名冲突的问题
//   2.命名空间下可以存放函数,变量,结构体,类;
//   3.命名空间必须定义在全局作用域下,不能定义在局部中
//   4.命名空间可以嵌套命名空间
//   5.命名空间是开放的。可以随时向空间中添加新的成员 采用合并策略
//   6.命名空间可以是匿名的,没有空间名,相当于全局变量
//   7.命名空间可以取个别名

举例:
有两个头文件,分别为game1.h 和game2.h,都定义了一个名叫goAtk()的方法。
有两个源文件都各自实现了game1.h和game2.g的goAtk()方法
在main方法中将两个头文件都引入,并调用goAtk()方法,此时运行即将报错:

game1.h

#include<iostream>
using namespace std;
//LOL
//攻击函数
namespace LOL
{

	void goAtk();
}




game2.h

#include<iostream>
using namespace std;
//KingGlory
//攻击函数
namespace KingGlory
{
	void goAtk();
}

game1.cpp

#include"game1.h"
void LOL::goAtk()
{
	cout << "LOL的攻击实现" << endl;
}

game2.cpp

#include"game2.h"
void   KingGlory::goAtk()
{

	cout << "王者荣耀的攻击实现" << endl;

}

/***************   namespce命名空间主要用途    ***********************/

//   1.用来解决命名冲突的问题
//   2.命名空间下可以存放函数,变量,结构体,类;
//   3.命名空间必须定义在全局作用域下,不能定义在局部中
//   4.命名空间可以嵌套命名空间
//   5.命名空间是开放的。可以随时向空间中添加新的成员 采用合并策略
//   6.命名空间可以是匿名的,没有空间名,相当于全局变量
//   7.命名空间可以取个别名
#define _CRT_SECURE_NO_WARINGS
#include<iostream>
using namespace std;
#include"game1.h"
#include"game2.h"

//   2.命名空间下可以放函数,变量,结构体,类;
//   4.命名空间可以嵌套命名空间
namespace A
{
	int m_A1 = 10;
	void func() {};
	struct person {};
	class Animal {};
	namespace B
	{
		int m_A = 20;
	}
}
namespace A
{

	int m_A2 = 100;

}
namespace
{
	int m_C = 100;
	int m_D = 200;
}
namespace veryLongName
{
	
	int m_E = 1001;
}

void test01()
{
	//namespace B;
	LOL::goAtk();
	KingGlory::goAtk();
	cout << "A空间下的M_A1=" << A::m_A1 << endl;
	cout << "A空间下的M_A2=" << A::m_A2 << endl;
	cout << "B空间下的M_A=" << A::B::m_A << endl;
	cout << "m_C=" << m_C << endl;
	cout << "m_D=" << ::m_D << endl;//全局作用域计算符
}

void test02()
{
	namespace VLN = veryLongName;//将命名空间的名字缩短
	cout << "m_E=" << veryLongName::m_E << endl;
	cout << "m_E=" << VLN::m_E << endl;
}
int main()
{
	test01();
	test02();
	system("pause");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Love coldplay

你的鼓励,将让我持续更新

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

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

打赏作者

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

抵扣说明:

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

余额充值