0

我目前有以下两个课程

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:

    .......
};

关于如何使用前向声明来解决我的问题的任何建议?

4

3 回答 3

1

您可以OrderDispatcher在 TimeOrder.h 中转发

namespaceA
{
    namespaceB
    {
        class OrderDispatcher;
    }
}

class TimedOrder 
{
//...
};
于 2013-09-26T03:54:52.793 回答
0

由于您只TimedOrderOrderDispatcher类中使用指针,因此可以通过简单地不包含TimedOrder.hOrderDispatch.h文件中来解决。相反,只需声明TimedOrder

class TimedOrder;

没有必要搞砸命名空间之类的。

注意:您不能在任何命名空间中声明它,而是在您现在执行#include.

于 2013-09-26T03:54:13.847 回答
0

前向声明可以写成:

namespace A{ namespace B{ class OrderDispatcher; } }
于 2013-09-26T03:54:53.397 回答