原文作者:@玄冬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;
	}
}
?