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

C++ Qt namespace and circular dependancy

本文关键字:依赖性 循环 命名空间 C++Qt      更新时间:2023-10-16

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

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

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

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

我该如何解决?

问候,

编写时:

namespace simulatorCommunication {
    class QLabel;
    class QPushButton;
    class QUdpSocket;
...

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

向前移动上面那些类的声明打开您的命名空间

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

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

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