Qt中的C++与ANSI C++有何不同?

3
我正在学习C++,目前使用的是Qt Creator。我听说Qt框架不同,或者说C++ Qt与标准的ANSI C++不同。有人能告诉我一些区别吗?我是否错过了一些基本的C++学习曲线,被Qt Creator/Qt框架所隐藏了?

如果我没记错的话,Qt使用一种特殊的预处理器,让你可以做一些标准C++无法实现的事情。这就是区别所在,再次如果我没记错的话。 - Seth Carnegie
2
除非我弄错了,这与C语言完全无关。标签已被移除。 - Mac
1个回答

5

Qt框架

Qt是一个基于C++的框架,通过自定义编译步骤扩展了C++的功能。基于Qt的类派生自QObject,可以利用标准C++语言中不存在的其他功能。

该框架的主要优点在于它支持更高级别的回调函数类型(信号和槽)和多平台支持。

信号和槽

来源:http://doc.qt.nokia.com/4.7/signalsandslots.html

信号和槽用于对象之间的通信。信号和槽机制是Qt的一个核心特性,可能是与其他框架提供的特性最不同的部分。

跨平台兼容层

Qt工具链允许您使用相同的工具构建在多个平台上运行的应用程序,如Windows、Linux和OS X。Qt抽象出平台相关差异,使您可以为多个平台编译相同的程序。可以将其视为反向Java - 您编写一个应用程序,以原生代码编译到需要支持的平台。

Qt方法的优点主要在于性能 - 运行时应该需要更少的内存,因为没有像Java或解释语言那样在您的应用程序和操作系统之间有虚拟机。

缺点是您必须维护每个平台的构建,并且总有一些不受支持的灰色区域。因此,在任何相当复杂的应用程序中,您最终都将编写某些特定于平台的代码。

C++11标准

如果您想学习标准C++,请查看C++11:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接