C ++ / Qt - 编译问题:语法错误:缺少';'标识符之前 - 不知道

时间:2011-07-04 15:59:22

标签: c++ qt

我有以下非常简单的代码:

main.cpp

#include "ui_library_browser.h"
#include <QtGui/QApplication>
#include "StartWindow.h"
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  StartWindow w;
  w.show();
  return a.exec();
}

StartWindow.h

#ifndef STARTWINDOW_H_
#define STARTWINDOW_H_

#include <qwidget>
#include "MainWindow.h"

class StartWindow : public QWidget
{ 
  Q_OBJECT

public:
  StartWindow();
  ~StartWindow();
  MainWindow main_window;  //<-- Problem
};
#endif

MainWindow.h

#ifndef MAINWINDOW_H_
#define MAINWINDOW_H_

#include <qdialog.h>
#include "StartWindow.h"

class MainWindow : public QDialog
{
  Q_OBJECT

public:
  MainWindow();
  ~MainWindow();
};
#endif

我收到以下错误:

moc_MainWindow.cpp

  

StartWindow.h(14):错误C2146:语法错误:缺少';'在标识符'main_window'之前   StartWindow.h(14):错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int   StartWindow.h(14):错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int

之前我写过一些C ++ / Qt应用程序,但我对此感到很满意!

提前致谢!

1 个答案:

答案 0 :(得分:10)

您的标头上存在循环依赖关系。从#include "StartWindow.h"文件中删除MainWindow.h