Я хотел бы знать, как правильно выполнять наследование от MainWindow. Например, в программе есть главное окно со списком, я хочу иметь класс, который выполняет некоторые операции над этим списком: например, заполнить поле со списком.
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class FillCombo;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow. cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
fillcombo.h
#ifndef FILLCOMBO_H
#define FILLCOMBO_H
#include <QMainWindow>
#include "mainwindow.h"
#include "ui_mainwindow.h"
QT_BEGIN_NAMESPACE
namespace Fill { class MainWindow; }
QT_END_NAMESPACE
class FillCombo:public MainWindow
{
public:
FillCombo(QWidget *parent = nullptr);
~FillCombo();
private:
Fill::MainWindow *f_ui;
};
#endif // FILLCOMBO_H
fillcombo. cpp
#include "fillcombo.h"
#include "mainwindow.h"
#include "ui_mainwindow.h"
FillCombo::FillCombo(QWidget *parent)
: MainWindow(parent)
, f_ui(new Fill::MainWindow) //Error: Allocation of incomlepete type
{
}
FillCombo::~FillCombo()
{
}
Почему у меня возникает эта ошибка, как ее правильно сделать?