我有包括课的奇怪问题。我上课了: main.cpp中:
#include "startwidget.h"
#include <QApplication>
#include <QtPlugin>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
StartWidget w;
w.show();
return a.exec();
}
startwidget.h:
#ifndef STARTWIDGET_H
#define STARTWIDGET_H
#include <QWidget>
#include "phonewidget.h"
#include "servicearealogin.h"
namespace Ui {
class StartWidget;
}
class StartWidget : public QWidget
{
Q_OBJECT
public:
explicit StartWidget(QWidget *parent = 0);
~StartWidget();
private:
Ui::StartWidget *ui;
PhoneWidget *phoneWidget;
ServiceAreaLogin *serviceAreaLogin;
};
#endif // STARTWIDGET_H
servicearealogin.h:
#ifndef SERVICEAREALOGIN_H
#define SERVICEAREALOGIN_H
#include <QWidget>
#include <QTimer>
#include "startwidget.h"
namespace Ui {
class ServiceAreaLogin;
}
class ServiceAreaLogin : public QWidget
{
Q_OBJECT
public:
explicit ServiceAreaLogin(QWidget *parent = 0);
~ServiceAreaLogin();
private:
Ui::ServiceAreaLogin *ui;
StartWidget *startWidget;
void startWidgetInit();
#endif // SERVICEAREALOGIN_H
问题是,当我想编译我的程序时,我收到一个错误:
/main.cpp:1:包含在../ Fluidwash / main.cpp中的文件中:1:
/startwidget.h:6:在startwidget.h中包含的文件中:6:
servicearealogin.h:22:błąd:未知类型名称'StartWidget' StartWidget * startWidget; ^
我真的不明白为什么如果我把它包含在标题中,它就找不到StartWidget类。
或许我的包含政治不好?
在我的StartWidget QWidget中,我执行serviceAreaLogin-&gt; show(),现在我需要对startWidget执行相同操作以返回上一个小部件。
我读了它Resolve header include circular dependencies,对我来说,我包含了我创建指针的类.h。那为什么不看课呢?