Qt没有看到包含类

时间:2016-10-11 09:42:08

标签: c++ qt

我有包括课的奇怪问题。我上课了: 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。那为什么不看课呢?

0 个答案:

没有答案