用Qt编写C ++时我应该做什么?只有2包括
#include <QtCore>
#include <QtGui>
或
#include <QWidget>
#include <QDialog>
#include <QList>
#include <QKeyEvent>
#include <QObject>
每个班级?
谢谢!
答案 0 :(得分:10)
只包括你需要的类的定义 - 其他任何东西不只是懒惰,它是非常浪费的,并且在我看来是糟糕的风格。
包括QtGui(其本身包括QtCore)将导致在您的编译中添加大约350(!)个头文件,在您的示例中您只需要6.编译将花费更长时间,并且当有人试图维护您的应用程序时浏览你的文件,他们无法从包含每个文件/类正在尝试做的内容中推断出来 - 他们必须阅读整个来源以获得一个想法。
答案 1 :(得分:5)
只需在课程中包含您需要的内容以加快编译速度。如果你是懒惰的人之一,并且无论编译需要多长时间,选择更通用的标题,但如果你正在寻找优化,请避免使用它们(编译器/链接器很可能会删除未使用的东西,但它仍然是最好不要先包括它。)
一般来说,如果我需要一些仍然缺失的东西(即尚未包括在内),我只会包含新内容。所以,只需点击编译。如果它遗漏了您忘记的内容,请添加标题。如果您不喜欢这种方法,请使用您提到的通用标题。
答案 2 :(得分:2)
如果您不想打扰包括每个单独的课程,那么请包含整个组件:
#include <QtCore>
#include <QtGui>
您需要使用的任何其他QT组件
#include <QtNetwork>
等
如果要显式指定依赖项,请包含每个单独的类
#include <QWidget>
#include <QDialog>
#include <QList>
#include <QKeyEvent>
以及您正在使用的其他QT课程。
答案 3 :(得分:0)
唯一的区别在于编译时间。如果您不使用预编译QtGui
和QtCore
标头,则编译时间会受到很大影响,您应该尽量避免这种情况。