在头文件中声明Qt类

时间:2016-03-11 05:50:08

标签: c++ qt qt5 forward-declaration

我正在阅读有关使用Qt5(作者Max Schlee)的书,我注意到一些例子已在头文件中声明了现有的Qt类,例如:

class QProgressBar;

所以,我的问题 - 为什么我们只是在我们的头文件中声明QProgressBar而不包含头文件class QProgressBar;

1 个答案:

答案 0 :(得分:7)

它不是关于Qt,它是c ++。

它被称为前瞻性声明。

基本上在.h中您只是说QProgressbar是一个类,并且不会抱怨它没有被定义。然后在.cpp文件中放置标题,这样在编译时,编译器就可以很好地定义所有内容。

这可以节省编译时间,因为#include强制编译器打开更多文件并处理更多输入。

这也可以节省不必要的重新编译。由于标题中的无关更改,#include可以强制您更频繁地重新编译代码。

当然,对于大型项目,您可能会遇到弊端。

您可以找到更多HERE