c – 包含Qt标头的正确方法是什么?

到目前为止,我知道#include Qt类的几种方法

> #include< QtModule>

这将带来特定模块的所有类,例如QDomDocument,QDomElement,QDomNode以及#include< QtXml>中的许多其他类.
> #include< QClassName>

增加了可能想要使用的特定类的声明,例如,QEvent,QStringList,QFile.
> #include< qcstyleheader.h>

这具有前一方法效果,除了不同的标题名称.

所以我想知道,还有其他方法可以#include Qt课程吗?它们是否相同,或者由于某些原因,它们中的一些是否优先于其他人?这取决于.cpp或.h文件中的#include-ing?这会影响可执行文件的编译速度和大小吗?

简而言之,最好的方法是什么?

解决方法

通常,头文件越多,编译器解析每个模块所需的时间就越长. (显然,预编译的头文件会产生一些问题.)因此,您通常希望包含正确构建应用程序所需的最少头文件.

如果您只在给定的编译单元中使用几个类,那么只需按现代风格的名称包含类:

#include <QEvent>
#include <QPainter>
#include <QFont>

如果您使用给定模块中的大量类,则可能同样容易包含模块级标头,例如:

#include <QtGui>

如果不存在较新的样式标题,通常只使用较旧的.h样式.

现在,预编译的头文件通过编译成二进制形式来缓解许多这些问题.但是,将预编译符号加载到内存中并在编译时搜索它们仍然需要付出代价.因此,您投入的越少,构建的效率就越高.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...