[C++]命名空间不同的两个类,如何在头文件中做声明_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > [C++]命名空间不同的两个类,如何在头文件中做声明

[C++]命名空间不同的两个类,如何在头文件中做声明

 2016/5/12 5:33:10  aigo  程序员俱乐部  我要评论(0)
  • 摘要:原文作者:@玄冬Wong问题是这样的,有两个类,且两个类所属命名空间不一样:namespaceNA{classA{}}namespaceNB{classB{}}假设B类中有个A的成员变量,然后我们又不想在B类头文件中引用A类的头文件(为了加快编译速度)。如果是两个都没有命名空间的类,那么好办:classA;classB{A*val;}如果有命名空间了,且命名空间不同,那么命名空间如何处理?方式如下:namespaceNA{classA;}namespaceNB{classB{A*val;}
  • 标签:文件 c++ 头文件

原文作者:@玄冬Wong

问题是这样的,有两个类,且两个类所属命名空间不一样:

?

class="cpp">namespace NA
{
	class A
	{
	}
}

?

namespace NB
{
	class B
	{
	}
}

?

?

假设B类中有个A的成员变量,然后我们又不想在B类头文件中引用A类的头文件(为了加快编译速度)。

如果是两个都没有命名空间的类,那么好办:

class A;

class B
{
	A* val;
}

?

如果有命名空间了,且命名空间不同,那么命名空间如何处理?

方式如下:

namespace NA
{
	class A;
}

namespace NB
{
	class B
	{
		A* val;
	}
}

?这样就能在B类头文件中不用引用A的头文件了。

?

再说一种情况,如果A类和B类命名空间相同,方式如下:

namespace NB
{
	class A;
	
	class B
	{
		A* val;
	}
}

?

发表评论
用户名: 匿名