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