我正在学习c ++,目前使用Qt创建者。我听说Qt框架不同,或者C ++ Qt与标准ANSI C ++不同。有人可以告诉我一些差异吗?我是否错过了Qt Creator / Qt框架隐藏的一些基本的c ++学习曲线?
答案 0 :(得分:5)
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 ++,请看一下C ++ 11: