• 11003阅读
  • 13回复

[原创]Qt中使用的C++知识和技能 [复制链接]

上一主题 下一主题
离线wd007
 

只看楼主 倒序阅读 楼主  发表于: 2011-09-06

Qt中使用的C++知识和技能-你必须要了解的


        如果你不确定在使用Qt编程时自己所掌握的C++知识是否够用,这一节的内容会帮到你。这里给出了Qt自身以及在使用Qt进行编程时涉及到的C++知识,因此,通过阅读本节,你会了解你是否缺少一些C++技能。
        如果你想对这里提到的C++特性做进一步的了解,我们推荐你看Gregory Satir和Doug Brown撰写的《C++:The Core Language》,该书由O’Reilly出版。这本书重点讲解了C++语言最为重要的部分,并且涵盖了本节提到的所有内容。
  • 对象和类

        当然的,Qt中使用到了类-Qt是一个类库。你需要知道某个类的成员函数的用法。而且,你需要掌握怎样写你自己的类,以及怎样继承一个已经存在的类,从而产生一个新的类。不过,你无需成为擅长类的等级设计的高手。对于GUI 程序设计,在这里我们会提供足够丰富的信息来帮助你构建自己的知识体系。
  • 存取方法

        Qt中大量的使用了存取方法,它们用来得到或者设置类的私有变量的值。保存方法通常以set...这样的型式出现(例如,setText()),而获取方法则不带有任何前缀(甚至没有get-,例如,text())。在Qt中,这是一个基本的东西(惯例,译者注);没有复杂的东西在里面。
  • 多态和虚函数

        Qt中使用虚函数来通知你的(程序中的)对象,某些低级的事件(就像鼠标点击、重绘操作那样的事件)发生了,所以你必须要适应这些函数(的用法)。不像其他的工具包或者类库,Qt主要使用创新的信号/槽机制而不是虚函数来作为对象间通信的主要的方法。这个特性对于Qt而言至关重要,所以在本书的后面章节中将会介绍它。
  • 继承

        毫无疑问,Qt中用到了继承,但是其中最重要的部分是建立在单继承之上的。多继承很少用到-实际上,它的使用少到你很可能从来没有遇到过它。如果你对那个“虚拟继承”的含义不理解的话,放心吧:Qt中根本就没有用到它。
  • 运算符重载

        Qt重载了一些运算符,但通常这些运算符只是(在背后)工作而已。举例来说,你可以把一个QString对象赋给某个函数,期望得到一个const char*,这是由于一个强制转换运算符的介入以把你的QString对象转换为一个字符指针。
  • 模板类

        不能使用一个不理解模板或者没有完全实现模板的编译器来编译Qt。如果你不想使用集合类,在你自己的代码中使用模板就不是必需的。但是模板是非常有用的,所以你还是要尽量的熟悉基本的模板的使用。并且,这个学习起来并不复杂。
  • bool数据类型

        Qt中经常用到bool数据(对于C++而言,是较新的类型)类型。不幸的是,一些老旧的编译器不支持bool数据类型,并且也不能识别true和false这两个关键字。这时候,你可以转而使用Qt提供的TRUE和FALSE宏来替代。在本书中,我们使用true和false,但如果你手头使用的是那些老旧的编译器,你需要总是使用TRUE和FALSE代替它们。
  • 其他特性

        Qt没有使用那些尚未被所有编译器所支持的以及新的C++特性,如名字空间、运行时类型识别(RTTI),新的类型绑定等等。Qt也不使用标准模板库(STL),但你可以在自己的Qt程序中使用它。

原文链接:http://blog.csdn.net/qter_wd007/article/details/6737470
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线jdwx

只看该作者 1楼 发表于: 2011-09-07
QT的模版类和STL的兼容不好,混合使用容易出问题。还是使QT自己的模版类吧。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线wd007

只看该作者 2楼 发表于: 2011-09-07
欢迎提出自己的心得体会,大家多交流。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线moontea
只看该作者 3楼 发表于: 2011-09-12
知道自己该补习哪些C++知识了,一个新手
离线xx34669138
只看该作者 4楼 发表于: 2011-09-28
最近在学Qt,
呵呵,
离线williamshy
只看该作者 5楼 发表于: 2011-11-10
有没有人讲下vc2005 怎么写QT程序?
什么都安装好了,也可以用vs2005编译别人写的程序。就是不知道自己怎么开始写一个简单的练习一下。
shy
离线ys547007
只看该作者 6楼 发表于: 2012-12-07
正在学习
离线黑皮拉风
只看该作者 7楼 发表于: 2012-12-27
来好好学习一下
离线beyondhcy

只看该作者 8楼 发表于: 2013-03-15
表示,没学C++来学Qt吃力啊,本来以为有C就可以凑合学了,处处碰壁啊,谢谢楼主分享~~
离线jdwx

只看该作者 9楼 发表于: 2013-03-15
回 8楼(beyondhcy) 的帖子
Qt是完全面向对象的,C++基础是必要的。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线beyondhcy

只看该作者 10楼 发表于: 2013-03-18
回 9楼(jdwx) 的帖子
嗯呢,谢谢关心,我在边学Qt边看相关的C++基础,现在普遍点的能看懂,后面再逐步巩固!
离线neil-wen

只看该作者 11楼 发表于: 2013-08-15
不错不错 值得一读
离线return

只看该作者 12楼 发表于: 2016-12-10
  
离线laughing369

只看该作者 13楼 发表于: 2017-12-09
学机械的有颗编程的心,谢谢指点
老人在,人生即有来处;老人去,人生只剩归途。所谓的幸福,就是你终于有能力孝敬老人的时候,你,还有机会
快速回复
限100 字节
 
上一个 下一个