C++与Qt学习路线

  • 静水竹林
  • LV5工程师
  • |      2015-12-10 01:25:21
  • 浏览量 1031
  • 回复:3
1、流输入输出概念
需要掌握cin、cout和fstream流

2、new与delete(配合类理解)

3、inline函数与#define的区别,学会使用inline

4、类的封装概念
需要掌握:
类的声明与对象定义
类的构造与析构(缺省构造函数,拷贝构造函数,构造函数的调用,如何用构造函数给对象指针赋值)
类的继承与私有、保护、共有成员
类的静态成员——例题:如何建立只有一个实例的类?如何统计类的实例个数?
多重继承下的虚基类
虚函数与对象指针
友元函数与友元类
学习方法:使用Qt编写小程序,以QString和衍生出的QByteArray等类为主
需要思考掌握的概念:
从Qt的框架结构理解【面向对象】和【封装】、【继承】的概念
充分理解【内聚】与【耦合】在程序设计中的重要性,并明白如何将其应用到面向对象编程中(提示:清晰的树状继承,逐步丰富类的特性,而非网状继承,以Qt为例)
类如何实现对象这个概念?对象中的【方法】与普通c的【函数】,在理念上有何区别?
类的封装的优点和特点(对比Qt与windows api的特性,建议使用windows api编写一些小程序,与Qt程序对比)
如何发挥类的继承特性,写出清晰的代码框架?(举例,Qt的类全部从QObject继承下来,逐步分类细化特点,在基类里提供统一的特性进行全局掌控)
类的静态成员如何为这一类对象服务?(以Qt各种类的静态函数为入手点)
题目:
公司员工管理系统

5、string类
需要掌握:
c++ string类的定义、赋值、各种字符串函数、字符串拼接、与char*数组的转换,与整形、浮点之间的转换
Qt的QString类的类似内容

6、STL模板库中的容器类
需要掌握:QList、QMap和iterator迭代器遍历
例题:QList的插入、删除与寻找,QMap的插入、删除与寻找,使用迭代器,用类似for遍历数组的方式遍历QList与QMap

7、模板
需要掌握:
模板变量类型的使用,举例:inline函数编写数学运算、大小对比等函数

8、Socket网络编程
需要掌握:
TCP、UDP服务端、客户端的具体结构和流程
使用Qt的Socket类编写TCP、UDP的服务端和客户端程序,在局域网内进行测试
网络调试工具的使用。具体可搜TCP测试工具

9、COM串口通讯
需要掌握:
485、232串口线路连接(A线、B线、TxD、RxD、共地概念)
串口调试工具的使用。推荐串口猎人
使用QextSerialPort库进行串口通讯编程(该库为用户自行写的Qt4串口类,与Qt官方库属于统一体系,可以被纳入Qt本身库的信号槽管控和垃圾处理机制中)

10、SQL数据库编程
需要掌握:
使用Qt用户扩展库与SQL数据进行连接,实现数据库操作功能(该库我手头上无头文件和文档,需自行查询)

11、运算符重载
需要掌握:
分别使用成员函数和友元函数进行运算符重载
+ - && ^等双目运算符的重载
++ --等单目运算符的重载
+= =等双目赋值运算符的重载
<< >>流控制运算符的重载
练习方式:
QString,Qt的iterator迭代器
扩展内容:
下标运算符的重载
<>配合模板类型重载,以自行实现新的容器类

12、XML文件解析
需要掌握:
使用QDocument、QDomElement、QDomNode、QDomNodeList类读取XML配置文件并进行解析

13、Qt信号槽机制
需要掌握:Qt信号槽机制
例题:
使用信号槽进行类之间的通讯,以避免耦合度的提高
使用信号槽进行COM通讯、Socket通讯和数据库通讯

14、Qt多线程编程
需要掌握:QThread类,信号槽在不同线程之间通讯时的同步问题(具体可以进行百度,能搜到csdn博客文章)
例题:将网络编程中,服务端程序进行线程分离,与客户端的通讯位于一个线程,数据处理位于另一个线程

15、QTimer
需要掌握:QTimer定时器类
例题:使用QTimer配合信号槽,定期执行任务函数

16、Qt文件操作扩展
需要掌握:
QDir、QFireInfoList类

可实现模块列表:
1、使用类的继承,从上到下实现数据结构,先定义统一基类,提供基础的全局调控,然后分部门、职务、成员三类进行继承,然后根据需求进行更详细的继承

2、使用静态成员,提供基于类的公共函数实现全局功能,如在基础类和具体的子类中分别实现特定功能

3、重写<<输入输出流运算符,使用cout进行数据展示

4、使用容器类储存数据对象

5、将程序分离为服务端与客户端,改写为网络系统。需要同时支持TCP与UDP功能,使用信号槽机制进行实现

6、记录日志文件。编写实现Log日志文件类,实现日志记录的所有功能,外部调用仅需log.LogMessage(QString str)方式即可。自动记录内容到文件中,并在行首加入时间记录,精确到年月日时分秒(QTime、QDateTime)。日志文件名以【文件名 年-月-日-时.txt】进行记录,每小时一个文件。日志类记录时会自动记录到当小时的文件中

7、加入XML配置文件。程序会自动从XML配置文件中读取所需的一切信息,如日志文件名称、数据库名称地址账号密码、服务端监听端口、服务端ip地址等配置

8、使用QTimer定时器定时检查日志文件,自动删除过期文件(过期时间在XML中进行配置,如七天
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:3
冰山一角 2015-12-11
顶起                    
0   回复
举报
发布
khuku 2015-12-10
不错,顶一个
0   回复
举报
发布
蓝蓝的天 2015-12-10
顶一个。。。。。。。。。。。。
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子