2017-12-11 11 views
0

このコードは以前より機能していました。私はラインTracker *tracker;で3つのエラーメッセージを取得していますQT Creator C++ MSVC15:型指定子がありません

#include <QMainWindow> 
#include <QImage> 
#include "videoengine.h" 
#include "tracker.h" 

namespace Ui { 
class MainWindow; 
} 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 
    void updateCoordinateLabels(); 

private: 
    Ui::MainWindow *ui; 
    VideoEngine *videoEngine; 
    Tracker *tracker; 
    void test(); 
}; 

C2143: syntax error: missing ';' before '*' 
C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
C2238: unexpected token(s) preceding ';' 

トラッカーは、私が定義されたクラスであり、QTに応じてそれに問題がないここに私のmainwindow.hです。型はTrackerでなければなりません、なぜそれがintであるかもしれないと仮定するのか分かりません。

私は間違っていますか?

+0

2つ以上のヘッダーが含まれている循環インクルードパスがあると思います。その外観から、 'mainwindow.h 'に' videoengine.h'や 'tracker.h'を含める必要はありません。代わりに前方宣言を使用してください。 – drescherjm

+0

それはあなたが100%正しいことが判明、drescherjm!私は "tracker.h"に "mainwindow.h"を含めてばかばかしく、事実上無限ループに陥っています。これを指摘してくれてありがとう、私のすべての問題を解決したこのラインを削除してください。しかし、悪いコンパイラのフィードバックについてはまだ混乱しています。 – ExtraGoofy

答えて

1

コードにエラーがどの行に関連しているかを示していません。さらに、すべてのコードを表示していません。念頭に置いて

、おそらく犯人:

トラッカーは、名前空間内で定義される可能性がありますので、あなたは完全にあなたの宣言でタイプを修飾する必要があります。

あなたはQmakeを実行していませんか?

+0

こんにちは、お返事ありがとうございます。エラーは 'Tracker * tracker'という行を参照しています。 Qmakeを何度も実行したが、何も変わらなかった。しかし、もう一つの答えのおかげで、この問題は解決されました。 – ExtraGoofy

関連する問題