2009-07-20 43 views
3

我通過Qt的頁面上的例子閱讀,我想知道他們爲什麼引用添加到已經存在的類在他們的代碼example爲什麼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 
{ 
... 

回答

10

這些都是向前聲明。使用它們可以(在某些情況下)避免#include相關的頭文件,從而加快編譯速度。標準C++庫與<iosfwd>標題做類似的事情。

1

如上所述詳細的想法,這是一個簡單的向前聲明。在頭文件中,這些類通常通過指針來使用,因此直到.cpp才需要完整地聲明該類。所以,例如您的標題可能會繼續...

class HttpWindow : public QDialog 
{ 

QFile *m_pFile; 
QHttp *m_pHttp; 
... 
} 
相關問題