第一章 概述 1
1.1 C++的起源和特点 1
1.2 程序和机器抽象 2
1.3 面向对象的方法 3
1.4 对象及其确认 4
1.5 面向对象的程序设计 7
1.6 程序的编译过程 9
1.7 C++语言中的抽象支持 10
1.8 C++的词法记号 12
1.9 C++程序的结构 14
1.10 小结 17
练习 17
第二章 基本数据类型和表达式 19
2.1 C++的基本数据类型 19
2.2 文字量 21
2.3 对象声明 23
2.4 枚举类型 24
2.5 表达式 25
2.6 赋值 33
2.7 表达式中的类型强制 34
2.8 常量表达式 36
2.9 小结 36
练习 36
第三章 控制结构 38
3.1 概述 38
3.2 简单顺序 38
3.3 选择 39
3.4 循环 45
3.5 转移语句 50
3.6 小结 52
练习 52
第四章 函数 53
4.1 函数的基本概念 53
4.2 参数传递机制 58
4.3 内联函数 61
4.4 重载 61
4.5 带缺省参数值的函数 63
4.6 异常处理基础 64
4.7 使用C++系统函数 66
4.8 简单的计算器程序 67
4.9 小结 69
练习 69
第五章 类 70
5.1 类的结构 70
5.2 对象的实现 73
5.3 构造函数和析构函数 75
5.4 成员函数的内联实现 77
5.5 带缺省参数值的成员函数和成员函数名重载 78
5.6 小结 80
练习 80
第六章 程序结构 81
6.1 程序抽象 81
6.2 作用域与可见性 82
6.3 对象的生存期 85
6.4 数据与函数 87
6.5 静态成员函数与静态数据成员 88
6.6 友员 91
6.7 前向引用声明 92
练习 93
6.8 小结 93
第七章 编译指令 95
7.1 #include 95
7.2 #define和#undef 97
7.3 #if和#endif 99
7.4 #clsc和#clif 101
7.5 #crror 103
练习 103
8.2 指针 104
第八章 复杂对象及对象之间的联系 104
8.1 概述 104
8.3 数组与指针 109
8.4 建立类类型的数组对象 113
8.5 引用 114
8.6 类型表达式 116
8.7 对象标识机制 117
8.8 堆对象 117
8.9 指针数组 121
8.10 多维数组与指向数组的指针 122
8.11 this指针 124
8.12 聚集 125
8.13 表达对象之间的联系 129
8.14 小结 129
练习 129
第九章 对类的进一步讨论 131
9.1 拷贝初始化构造函数 131
9.2 赋值 133
9.3 何时需要在类中定义拷贝初始化和赋值操作 134
9.4 const关键字 135
9.5 类型强制 141
9.6 小结 145
练习 145
第十章 操作符重载 146
10.1 概述 146
10.2 ++和--操作符 151
10.3 下标操作符 152
10.4 函数调用操作符 153
练习 154
10.5 小结 154
第十一章 串 155
11.1 串的存储表示 155
11.2 string类 160
11.3 带参数的main()函数 162
11.4 面向过程的程序设计与面向对象的程序设计 163
11.5 小结 171
练习 172
12.1 概述 173
第十二章 继承 173
12.2 访问控制 174
12.3 多继承 179
12.4 构造函数和析构函数 181
12.5 二义性和支配规则 184
12.6 虚基类 187
12.7 派生类的赋值和初始化语义 190
12.8 小结 191
练习 192
13.1 概述 193
第十三章 子类型化 193
13.2 动态束定与虚函数 195
13.3 纯虚函数与抽象类 199
13.4 虚析构函数 203
13.5 运行时类型识别 209
13.6 静态类型强制与动态类型强制 211
13.7 公有继承与私有继承的区别 212
13.8 保护的基类 213
13.10 小结 214
13.9 子类型化与多继承 214
练习 215
第十四章 异常处理 217
14.1 异常处理的一般规则 217
14.2 异常接口规范声明 219
14.3 构造函数和析构函数 220
14.4 小结 223
练习 223
第十五章 模板 224
15.1 函数模板 224
15.2 类模板 225
15.3 类模板用作函数的参数 227
15.4 类模板用作基类 227
15.5 小结 229
练习 229
第十六章 流类库 230
16.1 流抽象的继承结构 230
16.2 ASCII流和二进制流 233
16.3 预定义的流 234
16.4 预定义的插入符和提取符 234
16.5 格式控制 237
16.6 流的错误处理 241
16.7 重载提取符和插入符 242
16.8 进行文本数据提取的其它操作 244
16.9 istream类和ostream类中定义的其它成员函数 245
16.10 随机访问流 248
16.11 串流 250
16.12 小结 252
练习 252
附录A ASCII表 254
参考文献 256