2009-07-20 69 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; 
... 
} 
相关问题