ISO C++ forbids declaration of * with no type

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

 

出现这个错误,一般是由于两个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;

};

转自http://www.cnblogs.com/wanghetao/archive/2012/02/20/2360588.html——[转自:http://lion3875.blog.sohu.com/152013483.html]

 

以下为自己出这个bug的非此类情况,找到后感觉自己很傻很天真

当写成员函数忘记写返回值类型的时候也会报这个错

posted @ 2017-11-19 21:34  Babetterdj  阅读(5288)  评论(0编辑  收藏  举报