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://lion3875.blog.sohu.com/152013483.html]

原文地址:https://www.cnblogs.com/wanghetao/p/2360588.html