error: ISO C++ forbids declaration of 'XXXX' with no type

时间:2021-02-08 16:11:51


出现这个错误,一般是由于两个CPP相互都相互包含了对方的头文件造成的,比如:

 

当mainwindow.cpp、configdialog.cpp两个文件,分别包含了对方的头文件,并且分别又在自己的类中声明了对象,即:

 

mainwindow.cpp

#include "configdialog.h"

class MainWindow {

ConfigDialog *configDialog;

};

 

configdialog.cpp

#include "mainwindow.h"

class ConfigDialog {

MainWindow *mainWindow;

};

 

解决方法是,在声明对象的类名称前追加关键字“class”,即修改如下:

 

 

mainwindow.cpp

#include "configdialog.h"

class MainWindow {

class ConfigDialog *configDialog;

};

 

configdialog.cpp

#include "mainwindow.h"

class ConfigDialog {

class MainWindow *mainWindow;

};