オブジェクトsettings
からすべての値を表示したいダイアログ ウィンドウがあり、そのためにはinheritの保護されたメンバーが必要です。breadData を前方宣言しようとしましたが、コードでいくつかのエラーが発生しました。breadData
settings
breadData
/home/--/breadPull/prj/settings.h:14: error: invalid use of incomplete type 'struct breadData'
/home/--/breadPull/prj/resultwnd.h:7: error: forward declaration of 'struct breadData'
1breadData
つには、構造体ではありません。なぜコンパイラは、breadData が構造体であると考えるのでしょうか? 第二に、二行目が何を言おうとしているのか理解できない。私の唯一の推測は、私のプログラムには多くの循環依存関係があるためです。関連するコードは次のとおりです。
settings.h
#include <QDialog>
#include "breaddata.h"
class breadData;
namespace Ui {
class Settings;
}
class Settings : public QDialog, public breadData
{
Q_OBJECT
//.....
breadData.h
#include <vector>
#include <string>
#include <QtWidgets>
#include <QMainWindow>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "resultwnd.h"
#include "settings.h"
class MainWindow;
class resultWnd;
class breadData
{
public:
breadData(std::string);
~breadData();
//read in data file that provides all information
bool readData();
//.......
結果Wnd.h
include <QGroupBox>
#include "breaddata.h"
class breadData;
namespace Ui {
class resultWnd;
}
class resultWnd : public QGroupBox
//.....