使用#include< QObject >和#include< qobject.h >有什么区别吗?
这两种方法似乎都有效,所以为什么首选#include< QObject >肯定是有原因的。
发布于 2015-09-16 14:11:42
任何没有.h扩展名的标准Qt头文件都可以保证在下一个Qt版本和其他平台上是正确的,就像标准接口头一样。以及其他带有.h扩展的Qt头文件,它们只是实现头文件,最终可能对您不起作用。
Use
#include <QObject>
and not
#include <qobject.h>发布于 2015-09-16 13:59:56
从用户的角度来看,它们是相同的(我相信Qt添加这两个是为了方便,但不要引用我的话)。
然而,它更倾向于编写#include <QObject>,因为人们通常在包含头文件时使用引号,在包含“内置”文件(C++ STL、Qt内置文件等)时使用括号。
在大多数情况下,这两者是可以互换的。但是,使用方括号(对于大多数编译器)将首先搜索系统头文件,然后在本地目录中搜索头文件,而引号通常会首先在本地目录中搜索。
注意,这是依赖于编译器的。
例如,您通常会看到以下内容:
#include <map>
#include <string>
#include "foreignlibrary.h"发布于 2015-09-16 14:17:01
文件Qt/include/QtCore/QObject只包含:
#include "qobject.h"因此,这两种方式在功能上是相等的。从C++预处理器的角度来看,包括QObject在内的预处理器是另一个间接级别。然而,这与现代计算机并没有太大的不同。
Qt开发人员鼓励我们使用#include <QObject>。您应该始终优先使用文档化的方式,而不是未文档化的方式,因为未文档化的功能可能会在未来的版本中发生变化。
https://stackoverflow.com/questions/32600788
复制相似问题