阅读背景:

使用命名空间、头文件和实现文件

来源:互联网 


//至今没有解决的一个问题, 如a.cpp中有一个命名空间ming, 现在b.cpp想要使用这个命名空间, 或者使用该空间中的某一个类/普通函数/变量, 至今不知道怎么解决

//下面的方法是一种通用的正确方法
//自定义命名空间ming, 可以写在头文件中
namespace ming
{
	void fun(){};
	int num = 123;
	class myclass
	{
	public:
			void fun2(){};
			int num2;
	};
};

//程序中正确使用命名空间的4个方法, 如果命名空间的声明是写在头文件中, 需要#include该头文件!!!
using namespace ming;   //正确, ming命名空间中的所有东西都可以直接使用
using ming::num;			//正确, num是变量, 下面只能直接使用num变量
using ming::fun;				//正确, fun是函数,	下面只能直接使用fun()函数
using ming::myclass;		//正确, myclass是类,	下面只能直接使用myclass类

//错误使用:
using ming::myclass::fun2();		//错误, 意图使用类中成员函数
using ming::myclass.fun2();		//错误, 意图使用类中成员函数
using ming::myclass::num2;		//错误, 意图使用类中成员变量
using ming::myclass.num2;		//错误, 意图使用类中成员变量

//实际程序中4中正确使用
//第1个办法
using namespace ming;   //正确, ming命名空间中的所有东西都可以直接使用
myclass a;
a.fun2();
a.num2 = 222;
fun();
num++;	//因为一开始就赋值为123了

//第2个办法
using ming::num;			//正确, num是变量, 下面只能直接使用num变量
num++;		//可以直接使用num
ming::myclass a;		//要加ming前缀来使用myclass类
ming::fun();				//要加ming前缀来使用fun()函数

//第3个办法
using ming::fun;				//正确, fun是函数,	下面只能直接使用fun()函数
fun();		//直接使用fun()函数
ming::myclass a;			//要加ming前缀来使用myclass类
ming::num++;				//要加ming前缀来使用num变量

//第4个办法
using ming::myclass;		//正确, myclass是类,	下面只能直接使用myclass类
myclass a;				//可以直接使用myclass类
ming::num++;				//要加ming前缀来使用num变量
ming::fun();				//要加ming前缀来使用fun()函数
//至今没有解决的一个问题, 如a.cpp中有一个命名空间ming, 现在b.cp



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: