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

出现这个错误,一般是由于两个CPP相互都相互包含了对方的头文件造成的,比如:当mainwindow.cpp、configdialog.cpp两个文件,分别包含了对方的头文件,并且分别又在自己的类中生命了对象,即:mainwindow.cpp

 
   
  1. #include "configdialog.h"  
  2.  
  3. class MainWindow  
  4. {  
  5.  
  6.     ConfigDialog *configDialog;  
  7.  
  8. };  
  9.  
  10. configdialog.cpp  
  11.  
  12. #include "mainwindow.h"  
  13.  
  14. class ConfigDialog  
  15. {  
  16.  
  17.     MainWindow *mainWindow;  
  18.  
  19. }; 


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

 
  
  1. #include "configdialog.h"  
  2.  
  3. class MainWindow  
  4. {  
  5.  
  6.     class ConfigDialog *configDialog;  
  7.  
  8. };  
  9.  
  10. configdialog.cpp  
  11.  
  12. #include "mainwindow.h"  
  13.  
  14. class ConfigDialog  
  15. {  
  16.  
  17.     class MainWindow *mainWindow;  
  18.  
  19. };