为什么Qt在头文件中包含现有类的空类定义?

tom*_*jen 3 c++ qt

我正在阅读Qt页面上的示例,并想知道为什么他们在代码示例中添加对现有类的引用:

#ifndef HTTPWINDOW_H
#define HTTPWINDOW_H

#include <QDialog>

class QFile;
class QHttp;
class QHttpResponseHeader;
class QLabel;
class QLineEdit;
class QProgressDialog;
class QPushButton;

class HttpWindow : public QDialog
{
...
Run Code Online (Sandbox Code Playgroud)

小智 10

这些是前瞻性声明.使用它们(在某些情况下)可以避免#include相关头文件的需要,从而加快编译速度.标准C++库与<iosfwd>标题类似.


Aam*_*mir 9

这称为前瞻宣言

您可以在此处参考此问题,详细了解何时使用前向声明