C ++ Qt命名空间和循环依赖

时间:2013-09-01 20:27:11

标签: c++ qt

我制作了一些与Qt应用程序通信的代码。 现在我尝试重构这个代码,我遇到了一些问题。

我的代码在这里: https://gist.github.com/abuteau/6f8bd9f072dbb3f61144

当我编译时,我无效地使用所有QWidget的不完整类型和转发声明。

当我没有命名空间的代码时,我没有错误。

我该如何解决?

此致

2 个答案:

答案 0 :(得分:2)

当你写:

namespace simulatorCommunication {

    class QLabel;
    class QPushButton;
    class QUdpSocket;
...

您说您将在您的命名空间中定义上述类,但它们是由Qt定义的。

将这些类的声明向前移动到命名空间开放

答案 1 :(得分:0)

为您提供不完整类型错误的类不在您的命名空间中。 大概, 您必须为编译器为thos对象指定命名空间。 如果您给出了编译器错误,我可能会更精确。

此外,您在自己的命名空间中执行Qt classe的前向声明,但这些类将由Qt命名空间中的Qt定义,而不是您的。

fwd声明必须位于将被定义的命名空间