0

Qt アプリケーションと通信するためのコードをいくつか作成します。今、このコードをリファクタリングしようとしましたが、問題が発生しました。

私のコードはここにあります: https://gist.github.com/abuteau/6f8bd9f072dbb3f61144

コンパイルすると、すべての QWidget に対して不完全な型と前方宣言が無効に使用されます。

名前空間なしでコーディングすると、エラーは発生しません。

どうすれば解決できますか?

よろしく、

4

2 に答える 2

2

あなたが書くとき:

namespace simulatorCommunication {

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

名前空間で上記のクラスを定義するとおっしゃっていますが、それらは Qt によって定義されています

これらのクラスの宣言を名前空間のオープンより上に移動します

于 2013-09-01T20:33:54.860 に答える
0

不完全型エラーを発生させるクラスは名前空間にありません。おそらく、これらのオブジェクトの名前空間をコンパイラに指定する必要があります。あなたがコンパイラエラーを与えたなら、私はより正確になることができます.

また、独自の名前空間で Qt クラスの Forward 宣言を行いますが、これらのクラスは Qt によって定義され、あなたの名前空間では定義されません。

fwd 宣言は、それが定義される名前空間になければなりません

于 2013-09-01T20:33:20.240 に答える