首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#include<QObject>与#include<qobject.h>的区别

#include<QObject>与#include<qobject.h>的区别
EN

Stack Overflow用户
提问于 2015-09-16 13:57:08
回答 4查看 713关注 0票数 3

使用#include< QObject >#include< qobject.h >有什么区别吗?

这两种方法似乎都有效,所以为什么首选#include< QObject >肯定是有原因的。

EN

回答 4

Stack Overflow用户

发布于 2015-09-16 14:11:42

任何没有.h扩展名的标准Qt头文件都可以保证在下一个Qt版本和其他平台上是正确的,就像标准接口头一样。以及其他带有.h扩展的Qt头文件,它们只是实现头文件,最终可能对您不起作用。

代码语言:javascript
复制
Use 
    #include <QObject>
and not
    #include <qobject.h>
票数 2
EN

Stack Overflow用户

发布于 2015-09-16 13:59:56

从用户的角度来看,它们是相同的(我相信Qt添加这两个是为了方便,但不要引用我的话)。

然而,它更倾向于编写#include <QObject>,因为人们通常在包含头文件时使用引号,在包含“内置”文件(C++ STL、Qt内置文件等)时使用括号。

在大多数情况下,这两者是可以互换的。但是,使用方括号(对于大多数编译器)将首先搜索系统头文件,然后在本地目录中搜索头文件,而引号通常会首先在本地目录中搜索。

注意,这是依赖于编译器的。

例如,您通常会看到以下内容:

代码语言:javascript
复制
#include <map>
#include <string>

#include "foreignlibrary.h"
票数 1
EN

Stack Overflow用户

发布于 2015-09-16 14:17:01

文件Qt/include/QtCore/QObject只包含:

代码语言:javascript
复制
#include "qobject.h"

因此,这两种方式在功能上是相等的。从C++预处理器的角度来看,包括QObject在内的预处理器是另一个间接级别。然而,这与现代计算机并没有太大的不同。

Qt开发人员鼓励我们使用#include <QObject>。您应该始终优先使用文档化的方式,而不是未文档化的方式,因为未文档化的功能可能会在未来的版本中发生变化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32600788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档