我制作了一些与Qt应用程序通信的代码。 现在我尝试重构这个代码,我遇到了一些问题。
我的代码在这里: https://gist.github.com/abuteau/6f8bd9f072dbb3f61144
当我编译时,我无效地使用所有QWidget的不完整类型和转发声明。
当我没有命名空间的代码时,我没有错误。
我该如何解决?
此致
答案 0 :(得分:2)
当你写:
namespace simulatorCommunication {
class QLabel;
class QPushButton;
class QUdpSocket;
...
您说您将在您的命名空间中定义上述类,但它们是由Qt定义的。
将这些类的声明向前移动到命名空间开放
答案 1 :(得分:0)
为您提供不完整类型错误的类不在您的命名空间中。 大概, 您必须为编译器为thos对象指定命名空间。 如果您给出了编译器错误,我可能会更精确。
此外,您在自己的命名空间中执行Qt classe的前向声明,但这些类将由Qt命名空间中的Qt定义,而不是您的。
fwd声明必须位于将被定义的命名空间