《C++设计模式 基于Qt 4开源跨平台开发框架》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)Alan Ezust,(美)Paul Ezust著;李仁见,战晓明译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:7302157405
  • 页数:508 页
图书介绍:本书介绍C++语法,应用,编程思想与具体实例。

第Ⅰ部分 C++和Qt 4简介第1章 C++简介 3

1.1 C++概述 4

1.2 C++简史 4

1.3 在开源平台上安装 4

1.3.1 *nix 5

1.3.2 从源代码安装 6

1.4 在Win32平台上安装 8

1.5 第一个C++示例 9

1.6 输入与输出 12

1.7 标识符、类型与常量 15

1.8 C++的基本数据类型 17

1.8.1 main函数与命令行参数 19

1.8.2 代数运算 20

1.9 C++标准库字符串 23

1.10 流 24

1.11 关键字const 27

1.12 指针与内存访问 28

1.12.1 一元运算符&与* 28

1.12.2 运算符new和delete 30

1.13 const*与*const 32

1.14 引用变量 34

第2章 类 37

2.1 结构 38

2.2 类定义 39

2.3 成员访问限定符 40

2.4 封装 42

2.5 UML简介 43

2.6 类的友元 44

2.7 构造函数 44

2.8 子对象 46

2.9 析构函数 47

2.10 关键字static 48

2.11 复制构造函数与赋值运算符 51

2.12 转换 53

2.13 const成员函数 55

第3章 Qt简介 65

3.1 示例工程:使用Qapplication与QLabel 66

3.2 Makefile、qmake以及工程文件 67

3.2.1 #include:搜索头文件 69

3.2.2 make命令 70

3.2.3 清除文件 71

3.3 获得在线帮助 72

3.4 风格指南与命名约定 73

3.5 Qt核心模块 74

3.6 流与日期 74

第4章 列表 77

4.1 容器简介 78

4.2 迭代器 78

4.3 关系 80

第5章 函数 85

5.1 函数声明 86

5.2 重载函数 86

5.3 可选参数 89

5.4 运算符重载 91

5.5 通过值传递参数 94

5.6 通过引用传递参数 96

5.7 const引用 99

5.8 函数返回值 100

5.9 从函数中返回引用 100

5.10 根据const属性进行重载 101

5.11 内联函数 103

5.12 内联还是宏扩展 104

第6章 继承与多态 109

6.1 简单派生 110

6.2 多态派生 116

6.3 从抽象基类中派生 121

6.4 继承设计 124

6.5 重载、隐藏与覆盖 126

6.6 构造函数、析构函数与拷贝赋值运算符 127

6.7 处理命令行参数 129

第Ⅱ部分 高级编程第7章 库 139

7.1 代码容器 140

7.2 重用其他库 141

7.3 组织库:依赖管理 142

7.4 安装库:实验室练习 145

7.5 框架与组件 146

第8章 设计模式简介 149

8.1 目录与文件:QDir与QFileInfo 150

8.2 Visitor模式 151

8.3 使用继承来定制Visitor 153

第9章 QObject 159

9.1 QObject的子对象管理 161

9.2 组合模式:父对象与子对象 163

9.3 QApplication与事件循环 166

9.3.1 布局:初观 168

9.3.2 连接到槽 169

9.3.3 信号与槽 170

9.4 Q_OBJECT与moc:一览表 174

9.5 值与对象 175

9.6 tr()与国际化 176

第10章 范型与容器 179

10.1 范型与模板 180

10.1.1 函数模板 180

10.1.2 类模板 181

10.2 容器 184

10.3 管理容器、组合与聚合 185

10.4 隐式共享类 188

10.5 范型、算法和运算符 189

10.6 serializer模式 191

10.7 分类映射示例 193

第11章 Qt GUI部件 199

11.1 部件分类 200

11.2 QMainWindow和QSettings 201

11.3 对话框 204

11.4 图像与资源 208

11.5 部件的布局 211

11.5.1 Spacing、Stretching和Struts 214

11.5.2 在布局之间移动部件 215

11.6 QActions、QMenus和QMenuBars 219

11.7 QActions、QToolbars和QActionGroups 221

11.8 区域与QDockWidgets 228

11.9 QStringList的视图 229

第12章 并行 233

12.1 QProcess与进程控制 234

12.1.1 进程与环境 236

12.1.2 Qonsole:在Qt中编写一个Xterm 239

12.1.3 带有键盘事件的Qonsole 241

12.2 线程与QThread 244

12.2.1 QPixmap和Qthread直观演示例子:电影播放器 245

12.2.2 带有QTimer的电影播放器 248

12.2.3 多线程、队列和Loggers的例子:Giant 250

12.2.4 线程安全与QObjects 256

12.3 总结:QProcess和QThread 257

第13章 验证与正则表达式 259

13.1 验证器 260

13.2 正则表达式 261

13.2.1 正则表达式语法 262

13.2.2 正则表达式:电话号码识别 264

13.3 正则表达式验证 267

第14章 解析XML 271

14.1 Qt XML模块 274

14.2 事件驱动解析 275

14.3 XML、树型结构和DOM 278

14.3.1 Visitor模式:DOM树遍历 280

14.3.2 使用DOM生成XML 283

第15章 元对象、性质和反射编程 289

15.1 反模式 290

15.2 QMetaObject:MetaObject模式 291

15.3 类型识别与qobject_cast 292

15.4 Q_PROPERTY宏:描述QObject性质 294

15.5 QVariant类:访问性质 297

15.6 DataObject:QObject的一个扩展 299

15.7 性质容器:PropsMap 301

第16章 更多设计模式 303

16.1 创建型模式 304

16.1.1 抽象工厂 305

16.1.2 抽象工厂和库 306

16.1.3 qApp和Singleton模式 308

16.1.4 创建规则和友元函数(友元函数的真正用处) 309

16.1.5 使用工厂的好处 312

16.2 Serializer模式回顾 315

16.2.1 导出到XML 317

16.2.2 通过抽象工厂导入对象 318

16.3 Facade模式 322

16.3.1 实用Facade 325

16.3.2 智能指针:auto_ptr 325

16.3.3 FileTagger:Facade示例 326

第17章 模型与视图 331

17.1 M-V-C:控制器 332

17.2 动态表单模型 333

17.2.1 表单模型 336

17.2.2 表单视图 338

17.2.3 未预见的类型 340

17.2.4 控制Actions 341

17.2.5 DateObject表单模型 343

17.3 Qt 4模型和视图 347

17.4 表模型 348

17.5 树模型 354

第18章 Qt SQL类 359

18.1 MySQL简介 360

18.2 查询与结果集合 363

18.3 数据库模型 364

第Ⅲ部分 C++语言参考第19章 类型与表达式 369

19.1 运算符 370

19.2 逻辑表达式的估值 373

19.3 枚举 373

19.4 有符号与无符号整数类型 375

19.5 标准表达式转换 377

19.6 显式类型转换 378

19.7 使用ANSI C++类型转换进行安全类型转换 379

19.7.1 static_cast与const_cast 379

19.7.2 reinterpret_cast 382

19.7.3 不使用C语言风格的类型转换的原因 383

19.8 运行时类型识别(RTTI) 383

19.9 成员选择运算符 385

第20章 作用域类与存储类 391

20.1 声明与定义 392

20.2 标识符作用域 393

20.2.1 标识符的默认作用域小结 394

20.2.2 文件作用域与块作用域及操作符∷ 395

20.3 存储类 397

20.4 名字空间 400

20.4.1 匿名名字空间 402

20.4.2 开放的名字空间 402

20.4.3 名字空间、静态对象与extern 403

第21章 语句与控制结构 405

21.1 语句 406

21.2 选择语句 406

21.3 循环 409

21.4 异常 411

21.4.1 异常处理 411

21.4.2 异常类型 411

21.4.3 抛出事件 412

21.4.4 try与catch 415

21.4.5 再谈throw 419

21.4.6 重新抛出的异常 420

21.4.7 异常表达式 422

第22章 内存访问 427

22.1 指针的“病理学” 428

22.2 与堆内存有关的指针“病理学”进阶 430

22.3 内存访问概要 432

22.4 数组 432

22.5 指针算术操作 433

22.6 数组、函数和返回值 434

22.7 几种不同的数组 436

22.8 有效指针操作 436

22.9 new操作失败的处理方法 438

22.9.1 set_new_handler():解决new失败的另一种方法 439

22.9.2 使用set_new_handler和bad_alloc 440

22.9.3 检测null:测试new失败的更新方法 441

22.10 本章小结 442

第23章 继承详述 445

23.1 虚函数表指针和虚函数表 446

23.2 多态和虚析构函数 448

23.3 多重继承 450

23.3.1 多重继承的语法 450

23.3.2 带抽象接口的多重继承 452

23.3.3 解决多重继承冲突 453

23.4 public、protected和private派生 456

第24章 其他相关话题 459

24.1 带有变长参数列表的函数 460

24.2 资源共享 461

第Ⅳ部分 编程作业第25章 MP3点唱机作业 467

25.1 数据模型:Mp3File 469

25.2 Visitor:生成播放列表 470

25.3 Preference:一个枚举类型 471

25.4 重用id3lib 473

25.5 PlayListModel序列化 475

25.6 测试Mp3File相关类 475

25.7 简单查询和过滤器 476

25.8 Mp3PlayerView 478

25.9 模型和视图:PlayList 479

25.10 源选择器 479

25.11 持久设置 481

25.12 给FileTagger编辑表格视图 481

25.13 数据库视图 482

第Ⅴ部分 附录 487

附录A C++保留的关键字 487

附录B 标准头文件 489

附录C 开发环境 491

C.1 用于#including文件的预处理器 491

C.2 链接器 493

C.3 调试 496

C.3.1 建立一个可调试的目标 497

C.3.2 gdb快速入门 497

C.3.3 查找内在错误 499

C.4 Qt助手和设计器 501

C.5 开源IDE和开发工具 502

C.5.1 UML建模工具 504

C.5.2 jEdit 504

参考文献 507