我目前有以下两个班级
class TOrder
{
public:
private:
.......
};
现在我的另一堂课是:
#include "TOrder.h"
namespace namespaceA
{
namespace namespaceB
{
class OrderDis
{
private:
TOrder* frmPointer;
.....
};
}
}
以上工作正常,当我在TOrder中使用OrderDis的对象时,问题就开始了
#include <QMainWindow>
#include "OrderDis" //Added - Creates Problem
class TimedOrder
{
public:
.......
};
有关如何使用远期声明来解决我的问题的任何建议吗?
答案 0 :(得分:1)
您可以在TimeOrder.h中转发OrderDispatcher
namespaceA
{
namespaceB
{
class OrderDispatcher;
}
}
class TimedOrder
{
//...
};
答案 1 :(得分:0)
由于您只使用TimedOrder
类中的OrderDispatcher
指针,因此只需在TimedOrder.h
文件中不包含OrderDispatch.h
即可解决此问题。而只是声明 TimedOrder
类:
class TimedOrder;
无需使用命名空间等等。
注意:您不能在任何名称空间中声明它,而是在您现在执行#include
的位置声明它。
答案 2 :(得分:0)
前瞻性声明可以写成:
namespace A{ namespace B{ class OrderDispatcher; } }