第1章 编程简介 1
1.1 定义 2
1.2 起步 3
第2章 硬件基础知识 5
2.1 定义 5
2.2 本章目标 6
2.3 主机箱内部的秘密 6
2.4 二进制记数系统 13
2.6 使用16位寄存器名称 21
2.5 习题 21
2.7 本章回顾 27
2.8 小结 28
2.9 习题答案 28
第3章 编程基础知识 29
3.1 定义 29
3.2 本章目标 29
3.3 快而准的计算 29
3.4 编译程序 30
3.5 CPU 如何存储和操作内存中的数据 32
3.6 内存中数据的布局 34
3.7 习题(第1套) 35
3.8 char 类型和 string 类型 40
3.9 using、namespace 和 std 42
3.10 int main() 42
3.11 习题(第2套) 46
3.12 输入/输出 46
3.13 改变执行流程 47
3.14 while 循环 48
3.15 习题(第3套) 50
3.16 第一个比较实用的程序 50
3.18 本章回顾 54
3.17 习题(第4套) 54
3.19 小结 56
3.20 习题答案 56
第4章 其他基础知识 62
4.1 本章目标 62
4.2 算法 62
4.3 颁发任意数量的奖项 67
4.4 下标变量 71
4.5 选择排序 75
4.6 程序故障 84
4.7 本章回顾 87
4.8 习题 88
4.9 小结 89
4.10 习题答案 89
第5章 函数文化 93
5.1 定义 94
5.2 本章目标 94
5.3 模块与函数 94
5.4 使用函数 101
5.5 软件是虚拟计算机 105
5.6 变量的作用域 113
5.7 全局变量的不足 121
5.8 关于使用栈的更多信息 122
5.9 本章回顾 123
5.10 习题 124
5.11 小结 125
5.12 习题答案 125
第6章 库存管理 127
6.1 定义 127
6.2 本章目标 128
6.3 自定义数据类型 128
6.4 StockItem 类 131
6.5 更多的定义 132
6.6 具体数据类型 133
6.7 class 作用域 140
6.8 StockItem 类接口的更多信息 142
6.9 使用标准类库 150
6.10 引用参数 151
6.11 检查库存管理中的误放商品 172
6.12 本章回顾 172
6.15 习题答案 176
6.14 小结 176
6.13 习题 176
第7章 创建自己的 string 类 178
7.1 本章目标 178
7.2 C 字符串直接量与 string 类的变量 178
7.3 用 new 和 delete 进行动态内存分配 183
7.4 从 C 字符串构造 string 类对象 186
7.5 赋值运算符 192
7.6 解决赋值运算符问题 194
7.7 引用参数的 const 修饰符 195
7.8 调用 operator= 197
7.9 本章回顾 204
7.10 习题 205
7.11 小结 206
7.12 习题答案 206
第8章 继续开发自己的 string 类 209
8.1 本章目标 209
8.2 string 复制构造函数 214
8.3 有关 private 访问说明符的更多信息 222
8.4 本章初回顾 225
8.5 给 string 类增加其他功能 227
8.6 本章再回顾 246
8.7 习题 247
8.8 小结 248
8.9 习题答案 249
第9章 继承 254
9.1 定义 254
9.2 本章目标 255
9.3 库存管理 259
9.4 给 Inventory 类添加 ReorderItems 函数 260
9.5 添加有效期 263
9.6 protected 访问说明符 270
9.7 静态成员函数 280
9.8 stream 类 283
9.9 stringstream 进阶 284
9.10 本章回顾 298
9.11 本章习题 300
9.12 小结 301
第10章 多态性 302
10.1 定义 302
10.2 本章目标 302
10.3 多态性简介 303
10.6 更多定义 321
10.7 为什么需要多态对象 321
10.5 多态对象 321
10.4 习题(第一套) 321
10.8 实现安全的多态性 324
10.9 重新实现新版 StockItem 的标准成员函数 334
10.10 在构造过程中避免无限回归 336
10.11 引用计数 337
10.12 共享工人对象 338
10.13 为什么在 StockItem 中需要 m_Count 348
10.14 本章回顾 349
10.16 小结 352
10.15 习题(第二套) 352
第11章 家庭物品清单项目 353
11.1 定义 353
11.2 本章目标 353
11.3 家庭物品清单项目的数据项 353
11.4 再次使用“经理/工人”这个惯用语 355
11.5 向类用户隐藏不必要的信息 358
11.6 将元素数量存储在文件中 373
11.7 有计划地创建数据文件 375
11.8 增加编辑记录的能力 384
11.9 HomeItemMusic 的新成员函数 397
11.10 本章回顾 401
11.11 习题 404
11.12 小结 404
第12章 家庭物品清单项目深入开发 405
12.1 定义 405
12.2 本章目标 405
12.3 扩充 string 类的功能 406
12.4 如何实现新的 string 类功能 406
12.5 包含保护 408
12.6 xstring 类的实现 416
12.7 不区分大小写的搜索 417
12.8 通过子串搜索 421
12.9 将它集合到一起 425
12.10 到底怎样进行软件开发 430
12.11 本章回顾 430
12.12 小结 432
13.2 本章目标 433
13.3 家庭物品清单程序的最终版本 433
13.1 定义 433
第13章 分析家庭物品清单项目 433
13.4 使用名字空间来组织通用函数 440
13.5 HomeUtility 名字空间中的函数 443
13.6 核对物品清单 455
13.7 对 HomeItem 类进行最后处理 464
13.8 我们是否开心 470
13.9 本章回顾 470
13.10 习题 472
13.11 小结 472
附录 A 遗留问题总结 473
附录 B 术语表 475