《C++实践之路》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)迈尔威斯基著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2012
  • ISBN:9787115291349
  • 页数:408 页
图书介绍:本书分四个部分,分别讲解了C++的相关知识和使用的编程技术,如清理、隐藏实现细节、资源管理、重载运算符等。此外还探讨了编写和维护Windows应用程序的相关知识以及软件设计策略、团队协作开发、平台移植等内容。

第一部分 语言 3

第1章 对象和作用域 3

1.1全局作用域 3

1.2本地作用域 8

1.3嵌入对象 14

1.4继承(Inheritance) 16

1.5成员函数和接口 18

1.6成员函数作用域 20

1.7类型 26

1.7.1小结 27

1.7.2练习 27

1.8抽象数据类型 29

练习 33

第2章 数组和引用 34

2.1引用 34

2.2运算符 39

2.2.1算术 40

2.2.2逻辑 41

2.2.3位逻辑运算符 42

2.3基于堆栈的计算器 43

2.3.1外部规范 43

2.3.2设计 43

2.3.3简短的实现 44

2.3.4实现 47

2.3.5练习 52

第3章 指针 54

3.1指针的不利之处 54

3.2指针与引用 55

3.3指针与数组 56

3.3.1谈谈汇编 59

3.3.2练习 60

3.4指针与动态内存分配 61

3.5动态数据结构 64

3.5.1动态堆栈 64

3.5.2链表 67

3.5.3字符串表 73

3.5.4字符串缓冲器 75

3.5.5表查找 77

3.5.6哈希表 78

3.5.7测试程序 80

3.5.8练习 80

第4章 多态 82

4.1 is-a的意义 82

4.1.1谈谈实现 83

4.1.2开销 84

4.2解析树 85

4.2.1谈谈C 88

4.2.2练习 91

第5章 一个小型软件项目 93

5.1开始一个软件项目 93

5.1.1设计规范 93

5.1.2简短实现代码 95

5.1.3扩展程序片断 97

5.2扫描器 101

5.3符号表 106

5.4存储 108

5.5函数表 111

5.6节点 117

5.7解析器 119

5.8主函数(main) 126

5.9聚集初始化 127

练习 128

5.10过程化编程 130

5.11运算符重载 131

5.12按值传递 132

5.13值语义 136

第二部分 技术 145

第6章 清理 145

6.1输出解耦 145

6.2与“防错性编程”作斗争 148

6.3完备性编程的一个实例 150

6.4补充 154

6.5改进类之间的通信 155

6.6更正设计缺陷 159

第7章 隐藏实现细节 165

7.1使用嵌入类 165

7.2组合类 167

7.3使用名字空间组合 168

7.4在枚举中隐藏常量 170

7.5在本地变量中隐藏常量 172

第8章 共享 173

8.1分离全局程序参数 173

8.2增强包容性 173

8.3模板 176

练习 180

第9章 去掉限制 181

9.1动态数组 181

9.1.1动态MultiNode 185

9.1.2动态StringBuffer 186

9.1.3动态SymbolTable 188

9.1.4动态Store 189

9.2标准矢量 190

第10章 资源管理 195

10.1异常 196

10.2堆栈展开 198

10.3资源 202

10.4资源所有权 203

10.5访问资源 204

10.6智能指针 204

10.7所有权转移:第一次尝试 206

10.8所有权转移:第二次尝试 207

10.9安全容器 213

10.10迭代器 217

10.11错误传播 219

10.12转换到资源管理 221

10.13结论 222

第11章 使用标准模板库 223

11.1引用计数以及即写即复制 227

11.2结束限制 233

11.3去掉C-字符串 234

11.4探讨流 236

第12章 持久性 240

12.1 Calculator对象 240

12.2命令解析器 243

12.3串行化与反串行化 246

12.4内存中的串行化及反串行化 256

12.5多重继承 257

第13章 重载运算符new 259

13.1特定类new 259

13.1.1缓冲 259

13.1.2批量分配 263

13.1.3数组new 266

13.2全局new 266

13.3跟踪内存泄漏 268

13.3.1调用输出 273

13.3.2方位new 273

13.4结论 274

第三部分Windows 277

第14章库 277

宏和向导 277

第15章 编程范例 279

15.1 Hello Windows 280

15.2封装 286

第16章 通过C++控制Windows 288

16.1模型—视图—控制器 288

16.1.1控制器 294

16.1.2客户代码 295

16.2异常定义 297

16.3清理 298

第17章 绘图 300

17.1应用程序图标 300

17.2窗口绘图和视图对象 304

17.3画布 305

17.4 WM_PAINT消息 308

17.5模型 310

17.6捕获鼠标 313

17.7添加颜色和修饰 319

第18章 一个Windows应用程序 327

18.1把计算器移植到Windows环境下 327

18.2用户界面 328

18.3子窗口 329

18.4 Windows控件 330

18.4.1静态文本 330

18.4.2编辑控件 330

18.4.3窗口子类 331

18.4.4插入计算器 332

18.4.5列表框控件 333

18.4.6模块—视图反馈环 333

18.5命令和菜单 336

18.6动态菜单 339

18.7对话框 346

第四部分 知识扩展 355

第19章 关于软件 355

19.1复杂性 355

19.2软件的分形本质 357

19.3项目的灵活性 358

19.4程序员的灵活性 360

第20章 设计策略 362

20.1自顶向下的面向对象设计 362

20.2用户界面 363

20.3需求规范 364

20.4体系结构规范 365

第21章 使用标准模板库 366

21.1生产效率 366

21.2团队策略 368

第22章 实现策略 371

22.1确定全局 371

22.2自顶向下的面向对象实现方法 373

22.3程序修改 373

22.4代码继承 374

22.5多平台开发 375

第23章 移植 376

23.1创建一个抽象层 376

23.2移植计算器 377

23.2.1消除简单的Windows依赖性 377

23.2.2特殊Windows依赖性 379

23.3移植的好处 380

附录 383

附录A练习答案 383

附录B事务处理 400