C ++ Qt - странное поведение, когда атрибут класса T имеет родительский элемент T

Не уверен, что эта проблема касается Qt или C ++ в целом, я просто новичок в них обоих!
У меня есть простое приложение Qt с классами MainWindow и Hello , как показано ниже:

hello.h

#ifndef HELLO_H
#define HELLO_H

#include <QWidget>
#include "mainwindow.h"

class Hello : public QWidget
{
    Q_OBJECT
public:
    explicit Hello(MainWindow *parent = 0);

signals:

public slots:

};

#endif // HELLO_H

heloo.cpp

#include "hello.h"

Hello::Hello(MainWindow *parent) :
    QWidget(parent)
{
//nothing here yet
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>
#include "hello.h"

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Hello* hi;
};

#endif // MAINWINDOW_H

mainwindows.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    hi = new Hello(this);
}

MainWindow::~MainWindow()
{

}

main.cpp

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

и вот ошибка при сборке моего проекта:

из ../untitled1/main.cpp:2: ../untitled1/ hello.h: 11: error: expected ')' перед маркером '*'

и строка, вызывающая ошибку:

explicit Hello(MainWindow *parent = 0);

Вы можете помочь мне решить проблему!
Спасибо!

0
задан nvcnvn 2 December 2011 в 10:28
поделиться