Агрегация через указатель:
// *.h:
#ifndef FORM_H
#define FORM_H
#include <QWidget>
namespace Ui {
class Form;
}
class Form : public QWidget {
Q_OBJECT
public:
Form(QWidget *parent = 0);
~Form();
private:
Ui::Form *ui;
};
#endif
// *.cpp:
#include "form.h"
#include "ui_form.h"
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
}
Form::~Form()
{
delete ui;
}
Агрегация:
// *.h:
#ifndef FORM_H
#define FORM_H
#include "ui_form.h"
class Form : public QWidget {
Q_OBJECT
public:
Form(QWidget *parent = 0);
private:
Ui::Form ui;
};
#endif
// *.cpp:
#include "form.h"
Form::Form(QWidget *parent) :
QWidget(parent){
ui.setupUi(this);
}
Множественное наследование:
// *.h:
#ifndef FORM_H
#define FORM_H
#include "ui_form.h"
class Form : public QWidget, private Ui::Form {
Q_OBJECT
public:
Form(QWidget *parent = 0);
};
#endif
// *.cpp:
#include "form.h"
Form::Form(QWidget *parent) :
QWidget(parent){
setupUi(this);
}
Сабж. Как бэ намекают что в первом случае компилятер работает быстрее. Но третий куда более компактен.