Qt中的c++与ANSI中的c++不同吗?
Is c++ in Qt different from the ANSI c++?
我正在学习c++,目前虽然使用Qt creator。我听说Qt框架是不同的,或者c++ Qt与标准的ANSI c++不一样。谁能告诉我一点区别吗?我是否错过了Qt Creator/Qt框架隐藏的一些基本的c++学习曲线?
Qt Framework
Qt是一个基于c++的框架,它通过自定义编译步骤扩展了c++的功能。基于QObject的类派生自QObject,并且可以利用标准c++语言中没有的附加功能。
该框架的主要优点是它支持更高级类型的回调函数(信号和槽),并且具有多平台支持。
- http://qt.nokia.com/products
信号和槽位
来源:http://doc.qt.nokia.com/4.7/signalsandslots.html
信号和插槽用于对象之间的通信。的信号和槽机制是Qt的一个核心特征与其他提供的特性区别最大的部分框架。
跨平台兼容层
Qt工具链允许您使用相同的工具来构建在多个平台上运行的应用程序-例如Windows, Linux和OS x。Qt抽象了与平台相关的差异,以便您可以为多个平台编译相同的程序。你可以把它想象成反Java——不是编写一个应用程序运行在一个可以在任何平台上运行的虚拟机上,而是编写一个应用程序,它被编译成你需要支持的平台的本地代码。
Qt方法的优势主要是性能-它应该在运行时需要更少的内存,因为在应用程序和操作系统之间没有虚拟机,而Java或解释语言则没有。
缺点是您必须为每个平台维护构建,并且总是存在不支持的灰色区域。因此,不可避免地,您将在任何相当复杂的应用程序中编写一些特定于平台的代码。
c++ 11标准
如果你想学习标准c++,看看c++ 11:
- http://en.wikipedia.org/wiki/C%2B%2B11
- http://www.open-std.org/jtc1/sc22/wg21/
- http://gcc.gnu.org/projects/cxx0x.html
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++中的"inline"关键字
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 用C++中的一个变量定义一个常量
- vector.resize()中的分配错误
- 使用指针从C++中的数组中获取最大值
- arr[-1]在c++中的奇怪行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 将值指定给向量(2D)的向量中的某个位置
- 内置函数可查看CPP中的成员变量