我知道这个话题已经讨论过,但我花了半天时间来弄清楚我做错了什么.我一直有这个错误,我想我已经完成了数以千计的语法检查.谁能帮我?
#ifndef ADDEDITDIALOG_H
#define ADDEDITDIALOG_H
#include <QDialog>
#include <QStandardItemModel>
#include "characteristics.h"
#include "equipment.h"
#include "generaldata.h"
#include "registration.h"
#include "revisiondialog.h"
#include "vehicle.h"
#include "vehiclehelper.h"
#include "verification.h"
#include "verificationdialog.h"
namespace Ui {
class AddEditDialog;
}
class AddEditDialog : public QDialog
{
Q_OBJECT
public:
explicit AddEditDialog(QWidget *parent = 0);
~AddEditDialog();
bool getIsNew() const;
bool getIsEdited() const;
bool getAddRevision() const;
Vehicle getVehicleToAdd() const;
void setVehicleToAdd();
void loadVehicleToEdit(Vehicle car);
void createTableView(const QList<Verification> list);
QList<Verification> getRevisionsList() const;
private slots:
void on_add_revision_clicked();
void on_save_clicked();
void on_cancel_clicked();
void on_generate_reg_number_clicked();
private:
Ui::AddEditDialog *ui;
RevisionDialog *newDialog; //this line is giving the error
Vehicle toAdd;
bool isNew;
bool isEdited;
bool addRevision;
QList<Verification> newVerificationList;
QStandardItemModel *newModel;
};
#endif // ADDEDITDIALOG_H
Run Code Online (Sandbox Code Playgroud)
#ifndef REVISIONDIALOG_H
#define REVISIONDIALOG_H
#include <QDialog>
#include "addeditdialog.h"
#include "verification.h"
namespace Ui {
class RevisionDialog;
}
class RevisionDialog : public QDialog
{
Q_OBJECT
public:
explicit RevisionDialog(QWidget *parent = 0);
~RevisionDialog();
void setRevision();
void setRevisionsList();
Verification getRevision() const;
bool getOk() const;
private slots:
void on_ok_revision_clicked();
void on_cancel_revision_clicked();
private:
Ui::RevisionDialog *ui;
QList<Verification> revisionsList;
Verification revision;
bool okClicked;
};
#endif // REVISIONDIALOG_H
Run Code Online (Sandbox Code Playgroud)
RevisionDialog 是一个未定义的类型.
我看到你包括了
#include "revisiondialog.h"
Run Code Online (Sandbox Code Playgroud)
在顶部,据说定义RevisionDialog.
但是,显然您设法创建了一个循环包含依赖项,这意味着您revisiondialog.h还addeditdialog.h可以直接或间接地包含您的(如果是产生错误的标题的名称).
包含防护打破了包含周期,导致一个圆形头首先被物理包含在内,另一个实际包含在第二个中.在你的情况下addeditdialog.h首先包括在内,这就是为什么它对...的内容一无所知revisiondialog.h.
摆脱循环包含依赖.在你这样做之前,尝试其他任何东西都没有意义.
PS现在,当你发布revisiondialog.h它的内容显然它也包括addeditdialog.h.这是你的问题.
为什么revisiondialog.h包括你addeditdialog.h?有什么需要呢?
| 归档时间: |
|
| 查看次数: |
8654 次 |
| 最近记录: |