0

我编写了一些代码来与 Qt 应用程序通信。现在我尝试重构这段代码,但我遇到了一些问题。

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

当我编译时,我对所有 QWidget 都无效地使用了不完整的类型和前向声明。

当我在没有命名空间的情况下编码时,我没有错误。

我该如何解决?

问候,

4

2 回答 2

2

当你写:

namespace simulatorCommunication {

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

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

将这些类的声明向前移动到您的命名空间的 open 之上

于 2013-09-01T20:33:54.860 回答
0

给你不完整类型错误的类不在你的命名空间中。可能,您必须为这些对象指定编译器的命名空间。如果您给出编译器错误,我可能会更准确。

您还可以在自己的命名空间中对 Qt 类进行前向声明,但这些类将由 Qt 在 Qt 命名空间中定义,而不是您的。

fwd 声明必须在定义它的命名空间中

于 2013-09-01T20:33:20.240 回答