error: forward declaration of 'struct QLabel'错误提示
我在头文件中向前声明了类QLabel,编译时就出现这个错误。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class QLabel;
class QAction;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void open();
private:
Ui::MainWindow *ui;
QAction *openAction;
QLabel *msgLabel;
};
#endif // MAINWINDOW_H
头文件代码,刚开始只向前声明QAction时编译能通过,加了个QLabel就不行了
------解决思路----------------------
完整的错误信息是什么?
是不是在使用QLabel 的时候,你仍然没有包含头文件
------解决思路----------------------
在cpp中还是要包含的 不然,编译器怎么知道到哪儿链接你要的类
------解决思路----------------------
看来你没整明白为啥要前向声明。前向声明是为了加快编译速度以及降低依赖关系。所以,你要是在真正使用的地方不包含相关头文件的话,当然报错