我的问题:向前声明和命名空间(C++)
有两个类,类A和B,所以我就A.H和A.cpp和B.h和B.cpp。 A需要知道B和B需要知道A.我解决它通过以下方式(我不知道为什么要这样......)
啊:
#include "B.h"
class A{ ...
A. CPP:
#include "A.h"
了Bh:
#include "A.h"
class A; // forward declaration
class B { ...
B.cpp:
#include "B.h"
我使用了一个前向声明,它的工作原理。
问题是,这两个类都需要位于命名空间“ui”中。或者至少我觉得这个意思:
A.H:
#include "B.h"
namespace ui{
class A;
}
class A{ ...
B.h:
#include "A.h"
namespace ui{
class B;
}
class B{ ...
这不工作了。我现在必须做些什么才能使它再次与名称空间和前向声明一起工作?
两者都必须位于此名称空间中。我正在使用Qt,并且需要使用“namespace ui {”等。两个班都需要彼此了解。 我已经尝试只是为了让这样的:
namespace ui{
class A;
class B;
}
两个头
,但这并不工作...
BTW:所有页眉文件也得到了“IFNDEF” -mechanism。
什么是“这不起作用了吗?”是什么意思?请发布确切的编译器/链接器错误 – fredoverflow