我正在阅读Qt页面上的示例,并想知道为什么他们在代码example中添加对现有类的引用:
#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
{
...
答案 0 :(得分:10)
这些是前瞻性声明。使用它们(在某些情况下)可以避免#include相关头文件的需要,从而加快编译速度。标准C ++库与<iosfwd>
标题类似。
答案 1 :(得分:9)
您可以参考this question here详细了解何时使用远期声明
答案 2 :(得分:1)
如上所述,这只是一个前瞻性声明。在头文件中,这些类通常会通过指针使用,因此在.cpp之前不需要完整的类声明。所以,例如你的标题可能会继续......
class HttpWindow : public QDialog
{
QFile *m_pFile;
QHttp *m_pHttp;
...
}