QtをC++で使用しようとしています。以前はPythonでプログラミングするためにQTを使っていました。Qtプロジェクトのフォワード宣言
私の簡単なテストは機能しません。これは私のtour.hファイルです:
#ifndef TOUR_H
#define TOUR_H
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QTableView>
class TourTable;
class Tour : public QMainWindow
{
Q_OBJECT
public:
Tour();
/*protected:
void closeEvent(QCloseEvent *event);
private slots:
void newCompetitor();
void remCompetitor();
void finalReport();
void openPage();
void savePage();
void reloadTitle();*/
private:
TourTable _table;
};
class QStandardItem;
class QStandardItemModel;
class TourTable : public QTableView
{
Q_OBJECT
public:
TourTable();
/* bool isChanged();
QString windowName();
void finalReport();
void newCompetitor();
void remCompetitor();
bool savePage();
void setChanged(bool value);
void openPage();
protected:
void itemChanged(QStandardItem item);
private:*/
// bool _secondBetter(p1, p2);
Tour _parent;
// QStandardItemModel _model;
// bool _saved;
// bool _changed;
};
#endif
私は問題を特定するために、このコードではほとんどすべてをコメントのだが、私はまだこれを引き起こしているのか分かりません。私の最初の試みはC++です。
エラーメッセージは次のとおりです。
tour.h:28:12: error: field ‘_table’ has incomplete type ‘TourTable’
TourTable _table;
^~~~~~
tour.h:7:7: note: forward declaration of ‘class TourTable’
class TourTable;
誰かが私はそれを解決するために助けることができますか?
あなたが同じファイルに 'TourTable'クラスを宣言しているので、'前方declaration'ための必要はありません、あなたは 'Tour'クラスを宣言する前に、' TourTable'をプッシュすることができます。 –
TourTableクラスのTourリファレンスを持っているので、これはうまくいきません。 – demonplus
あなたがする必要があるのは、TourTable * _tableを使用することです。後でcppファイル – demonplus