第一部分 设计模式与Qt 2
第1章 C++简介 2
1.1 C++概述 2
1.2 C++简史 2
1.3第一个C++例子 3
1.4标准输入与输出 5
1.5函数介绍 7
1.6 qmake,工程文件及Makefile 11
1.7获得在线帮助 16
1.8字符串 16
1.9流 18
1.10文件流 20
1.11用于用户输入/输出的Qt对话框 23
1.12标志符,类型和常量 26
1.13 C++简单类型 27
1.14 const关键字 36
1.15 指针与内存访问 37
1.16引用变量 41
1.17 const*与*const 42
1.18复习题 44
第2章 类与对象 46
2.1 struct简介 46
2.2类定义 47
2.3成员访问限定符 49
2.4封装 51
2.5 UML介绍 51
2.6类的友元 52
2.7构造函数 53
2.8析构函数 55
2.9 static关键字 56
2.10类的声明和定义 59
2.11复制构造函数与赋值运算符 60
2.12转换 63
2.13 const成员函数 65
2.14子对象 66
2.15练习:类 67
2.16复习题 74
第3章 Qt简介 78
3.1风格指南与命名约定 79
3.2 Qt核心模块 80
3.3 Qt Creator,用于Qt编程的集成开发环境 82
3.4练习:Qt简介 83
3.5复习题 84
第4章 列表 85
4.1容器简介 85
4.2迭代器 85
4.3关系 90
4.4练习:关系 91
4.5复习题 92
第5章 函数 94
5.1函数重载 94
5.2可选实参 96
5.3运算符重载 98
5.4按值传递参数 101
5.5按引用传递参数 103
5.6 const引用 105
5.7函数返回值 106
5.8从函数返回引用 106
5.9对const重载 107
5.10 inline函数 109
5.11带变长实参表的函数 112
5.12练习:加密 113
5.13复习题 115
第6章 继承与多态 116
6.1简单派生 116
6.2具有多态性的派生 121
6.3抽象基类的派生 127
6.4继承设计 130
6.5重载,隐藏与重写 132
6.6构造函数,析构函数与复制赋值运算符 133
6.7处理命令行实参 137
6.8容器 141
6.9托管容器,组合与聚合 142
6.10指针容器 145
6.11复习题 159
第7章 库与设计模式 163
7.1建立并复用库 164
7.2练习:安装库 169
7.3框架与组件 171
7.4设计模式 172
7.5复习题 178
第8章 QObject,QApplication,信号和槽 179
8.1值和对象 181
8.2组合模式:父对象和子对象 182
8.3 QApplication和事件循环 187
8.4 Q_OBJECT和moc一览表 188
8.5信号和槽 189
8.6 QObject的生命周期 190
8.7 QTestLib 191
8.8练习:QObject,QApplication,信号和槽 194
8.9复习题 194
第9章 窗件和设计师 195
9.1窗件的分类 195
9.2设计师简介 197
9.3对话框 199
9.4窗体的布局 201
9.5图标,图像和资源 202
9.6窗件的布局 205
9.7设计师和代码的集成 210
9.8练习:输入窗体 215
9.9事件循环:重访 216
9.10绘制事件和画图 222
9.11复习题 224
第10章 主窗口和动作 225
10.1 QAction, QMenu和QMenuBar 225
10.2区域和QDockWidget 232
10.3 QSettings:保存和恢复应用程序的状态 234
10.4剪贴板和数据传输操作 236
10.5命令模式 237
10.6 tr()和国际化 243
10.7练习:主窗口和动作 244
10.8复习题 244
第11章 范型和容器 246
11.1范型与模板 246
11.2范型,算法和运算符 250
11.3有序映射示例 252
11.4函数指针和仿函数 255
11.5享元模式:隐式共享类 257
11.6练习:范型 260
11.7复习题 261
第12章 元对象,属性和反射编程 262
12.1 QMetaObject——元对象模式 262
12.2类型识别和qobject_cast 263
12.3 Q_PROPERTY宏——描述QObject的属性 265
12.4 QVariant类:属性访问 267
12.5动态属性 270
12.6元类型,声明和注册 273
12.7 invokeMethod() 275
12.8练习:反射 275
12.9复习题 276
第13章 模型和视图 277
13.1模型-视图-控制器(MVC) 277
13.2 Qt模型和视图 278
13.3表格模型 287
13.4树模型 295
13.5智能指针 298
13.6练习:模型和视图 300
13.7复习题 301
第14章 验证和正则表达式 302
14.1输入掩码 302
14.2验证器 304
14.3正则表达式 306
14.4正则表达式验证 313
14.5子类化QValidator 314
14.6练习:验证和正则表达式 316
14.7复习题 317
第15章 XML解析 318
15.1 Qt XML解析器 320
15.2 SAX解析 321
15.3 XML,树结构和DOM 325
15.4 XML流 332
15.5复习题 334
第16章 更多的设计模式 335
16.1创建模式 335
16.2备忘录模式 342
16.3 Facade模式 347
16.4复习题 352
第17章 并发 353
17.1 QProcess和进程控制 353
17.2 QThread和QtConcurrent 363
17.3练习:QThread和QtConcurrent 374
17.4复习题 375
第18章 数据库编程 376
18.1 QSqlDatabase:从Qt连接SQL 377
18.2查询和结果集 381
18.3数据库模型 382
18.4复习题 383
第二部分 C++语言规范 386
第19章 类型与表达式 386
19.1运算符 386
19.2语句与控制结构 389
19.3逻辑表达式的求值 394
19.4枚举 395
19.5有符号整型类型与无符号整型类型 396
19.6标准表达式转换 398
19.7显式转换 400
19.8用ANSI C++类型转换进行更安全的类型转换 401
19.9重载特殊的运算符 405
19.10运行时类型识别 410
19.11成员选择运算符 412
19.12练习:类型与表达式 413
19.13复习题 415
第20章 作用域与存储类 416
20.1声明与定义 416
20.2标志符的作用域 417
20.3存储类 423
20.4命名空间 426
20.5复习题 430
第21章 内存访问 431
21.1指针误用 431
21.2带有堆内存的更多指针误用 433
21.3内存访问小结 435
21.4数组简介 435
21.5指针的算术运算 436
21.6数组,函数与返回值 437
21.7不同类型的数组 439
21.8有效的指针操作 439
21.9数组与内存 441
21.10练习:内存访问 441
21.11复习题 442
第22章 继承详解 443
22.1虚指针和虚表 443
22.2多态与虚析构函数 445
22.3多重继承 448
22.4 public, protected和private派生 453
22.5复习题 454
第三部分 编程作业 456
第23章 MP3自动点唱机作业 456
23.1 Phonon/MultiMediaKit配置 457
23.2播放列表 457
23.3多种类型的播放列表 458
23.4源选择器 459
23.5各播放列表数据库 460
23.6星号评分 460
23.7排序,过滤和播放列表编辑 460
附录A C++的保留关键字 461
附录B标准头文件 462
附录C开发工具 463
附录D Alan的Debian程序员快速指南 480
附录E C++/Qt配置 485
参考文献 491