第一章 程序设计与C++语言初步 1
1.1 概述 1
1.2 面向对象的思维方式 1
1.2.1 模拟自动售货机的算法 2
1.2.2 将自动售货机看成实体 2
1.2.3 小结 4
1.3 BNF与SFPL语言 4
1.3.1 SFPL语言 4
1.3.2 用BNF描SFPL述语言的语法 5
1.4 习题与习题解答 6
1.5 上机实习题 17
第二章 基本数据类型 19
2.1 概述 19
2.2 选择标识符 19
2.2.1 程序的可理解性 19
2.2.2 选择标识符的基本原则 20
2.2.3 通用的命名约定原则 21
2.2.4 标识符命名建议 22
2.3 常量、变量与表达式 24
2.3.1 常量 24
2.3.2 变量 24
2.3.3 运算符与表达式 25
2.4 习题与习题解答 27
2.5 上机实习题 34
第三章 基本控制结构 38
3.1 C++语言的语句 38
3.2 选择语句 39
3.2.1 布尔类型的处理 39
3.2.2 布尔表达式的书写 40
3.2.3 选择语句的用法 41
3.3.1 循环语句的组成 42
3.3 循环语句 42
3.3.2 break和continue的典型用法 43
3.3.3 循环语句的优化 44
3.4 习题与习题解答 46
3.5 上机实习题 59
第四章 函数 65
4.1 函数的引入 65
4.1.1 模块化程序设计思想 65
4.1.2 函数界面设计 66
4.2 参数传递 68
4.2.1 参数传递过程 68
4.2.2 形参与实参匹配 69
4.2.3 缺省参数与可变参数 71
4.3 作用域与生存期 72
4.3.1 标识符的作用域 72
4.3.2 标识符的声明和使用 73
4.3.3 变量的生存期 76
4.4 递归程序设计技术 77
4.5 习题与习题解答 80
4.6 上机实习题 88
第五章 类与对象 92
5.1 类的引入 92
5.2 类的设计 93
5.2.1 桌球城计费问题的非模块化设计 93
5.2.2 引入函数求解桌球城计费问题 95
5.2.3 引入类求解桌球城计费问题 98
5.2.4 小结 101
5.3 类的声明 102
5.3.1 类的常量成员与静态成员 102
5.3.2 类的嵌套定义 104
5.4 抽象数据类型 105
5.5 习题与习题解答 107
5.6 上机实习题 114
第六章 复合数据类型 120
6.1 使用指针 120
6.2 指针、引用与数组 121
6.2.1 C++语言的派生类型 122
6.2.2 类型解析式 122
6.3 高级数据结构 123
6.4 习题与习题解答 127
第七章 继承机制 147
7.1 继承机制的引入 147
7.2 C++语言的类型系统 148
7.2.1 C++语言的类型 148
7.2.2 派生类型的构造 149
7.2.3 类型之间的关系 151
7.2.4 类与类型转换 154
7.3 类与类之间的关系 155
7.3.1 继承关系 155
7.3.2 聚合关系 156
7.3.3 实例连接 158
7.3.4 消息连接 160
7.4 习题解答 160
第八章 多态性 171
8.1 概述 171
8.2 函数重载 172
8.2.1 函数重载的条件 172
8.2.2 函数名粉碎 172
8.2.3 函数绑定方法 173
8.2.4 构造函数的重载 174
8.3 运算符重载 174
8.3.1 重载运算符的一般规定 174
8.3.2 重载函数调用运算符 176
8.3.3 重载间接成员运算符 177
8.3.4 重载new和delete运算符 178
8.4 动态绑定 180
8.4.1 动态绑定的条件 180
8.4.2 虚析构函数 181
8.4.3 动态获取类型信息 182
8.5 习题与习题解答 183
8.6 上机实习题 194
第九章 类属机制 204
9.1 概述 204
9.2 类模板 204
9.2.1 类模板的普通参数 204
9.2.2 类模板与深复制策略 206
9.2.3 类模板与静态成员及友元 208
9.2.4 类模板与继承机制及动态绑定 209
9.3 函数模板 210
9.4 习题与习题解答 213
9.5 上机实习题 216
第十章 输入输出流 226
10.1 概述 226
10.2 打印文本文件 227
10.3 操作二进制文件 237
10.4 习题与习题解答 248
10.5 上机实习题 252
第十一章 面向对象软件构造 265
11.1 面向对象程序设计的基本概念 265
11.2 面向对象软件开发方法 266
11.2.1 从结构化方法到面向对象方法 266
11.2.2 软件开发方法的要素 267
11.3 实例一:库存成本核算系统 271
11.4 实例二:C++程序的词法分析器 282