第1章概述 1
1.1计算机程序设计语言的发展 1
1.1.1机器语言与汇编语言 1
1.1.2高级语言 2
1.1.3面向对象的语言 2
1.2面向对象的方法 2
1.2.1面向对象方法的由来 3
1.2.2面向对象的基本概念 4
1.3面向对象的软件开发 5
1.3.1分析 5
1.3.2设计 6
1.3.3编程 6
1.3.4测试 6
1.3.5维护 6
1.4信息的表示与存储 7
1.4.1计算机的数字系统 7
1.4.2几种进位记数制之间的转换 8
1.4.3信息的存储单位 11
1.4.4二进制数的编码表示 11
1.4.5定点数和浮点数 15
1.4.6数的表示范围 15
1.4.7非数值信息的表示 16
1.5程序的开发过程 16
1.5.1基本术语 17
1.5.2程序的开发过程 18
1.6小结 18
习题 18
第2章C++简单程序设计 19
2.1C++语言概述 19
2.1.1C++的产生 19
2.1.2C++的特点 19
2.1.3C++程序实例 20
2.1.4字符集 21
2.1.5词法记号 21
2.2基本数据类型和表达式 23
2.2.1基本数据类型 23
2.2.2常量 24
2.2.3变量 26
2.2.4符号常量 27
2.2.5运算符与表达式 27
2.3数据的输入与输出 35
2.3.1I/O流 35
2.3.2预定义的插入符和提取符 35
2.3.3简单的I/O格式控制 36
2.4算法的基本控制结构 36
2.4.1用if 语句实现选择结构 37
2.4.2多重选择结构 38
2.4.3循环结构 42
2.4.4循环结构与选择结构的嵌套 47
2.4.5其他控制语句 49
2.5自定义数据类型 49
2.5.1类型定义语句——typedef 49
2.5.2枚举类型——enum 50
2.5.3结构体 54
2.5.4联合体 56
2.6小结 59
习题 59
第3章函数 63
3.1函数的定义与使用 63
3.1.1函数的定义 63
3.1.2函数的调用 64
3.1.3函数的参数传递 76
3.2内联函数 80
3.3带默认形参值的函数 81
3.4函数重载 83
3.5函数模板 85
3.6使用C++系统函数 87
3.7小结 89
习题 90
第4章类与对象 92
4.1面向对象的思想 92
4.1.1结构化程序设计 92
4.1.2面向对象程序设计 93
4.2面向对象程序设计的基本特点 94
4.2.1抽象 94
4.2.2封装 95
4.2.3继承 96
4.2.4多态 96
4.3类和对象 96
4.3.1类的声明 96
4.3.2类成员的访问控制 97
4.3.3类的成员函数 99
4.3.4对象 100
4.3.5程序实例 101
4.4构造函数和析构函数 102
4.4.1构造函数 102
4.4.2拷贝构造函数 104
4.4.3析构函数 108
4.4.4程序实例 109
4.5类的组合 110
4.5.1类的组合 111
4.5.2前向引用声明 114
4.6类模板 114
4.7面向对象标记 117
4.8小结 119
习题 120
第5章C++程序的结构 121
5.1作用域与可见性 121
5.1.1作用域 121
5.1.2可见性 123
5.2生存期 124
5.2.1静态生存期 124
5.2.2动态生存期 124
5.3数据与函数 127
5.3.1局部变量 127
5.3.2全局变量 127
5.3.3数据成员 128
5.4静态成员 129
5.4.1静态数据成员 130
5.4.2静态函数成员131
5.5友元 133
5.5.1友元函数 135
5.5.2友元类 136
5.6共享数据的保护 137
5.6.1常引用 137
5.6.2常对象 138
5.6.3用const修饰的类成员 139
5.7多文件结构和编译预处理命令 141
5.7.1C++程序的一般组织结构 141
5.7.2编译预处理程序 143
5.8小结 147
习题 147
第6章数组、指针与字符串 149
6.1数组 149
6.1.1数组的说明与使用 149
6.1.2数组的存储与初始化 151
6.1.3数组作为函数参数 153
6.1.4对象数组 154
6.1.5程序实例 157
6.2指针 160
6.2.1内存空间的访问方式160
6.2.2指针变量的声明161
6.2.3与地址相关的运算——“*”和“&”162
6.2.4指针的赋值162
6.2.5指针运算165
6.2.6用指针处理数组元素166
6.2.7指针数组167
6.2.8用指针作为函数参数169
6.2.9指针型函数171
6.2.10指向函数的指针171
6.2.11对象指针173
6.3动态内存分配 178
6.3.1new运算和delete运算 178
6.3.2动态内存分配与释放函数 181
6.4字符串 181
6.4.1用字符数组存储和处理字符串182
642string类184
6.5小结188
习题 188
第7章继承与派生 191
7.1继承与派生 191
7.1.1派生与继承的实例 191
7.1.2派生类的声明 192
7.1.3派生类生成过程 194
7.2访问控制 195
7.2.1公有继承 196
7.2.2私有继承 198
7.2.3保护继承 200
7.3派生类的构造和析构函数 201
7.3.1构造函数 202
7.3.2析构函数 204
7.4派生类成员的标识与访问 206
7.4.1作用域分辨 207
7.4.2虚基类 211
743虚基类及其派生类的构造函数214
7.5赋值兼容规则 215
7.6程序实例——用高斯消去法解线性方程组 218
7.6.1算法基本原理 218
7.6.2程序设计分析 219
7.6.3源程序及说明 220
7.6.4运行结果与分析 225
7.7程序实例——一个小型公司的人员信息管理系统 226
7.7.1问题的提出 226
7.7.2类设计 226
7.7.3源程序及说明 227
7.7.4运行结果与分析 231
7.8小结 233
习题234第8章多态性 235
8.1多态性概述 235
8.1.1多态的类型 235
8.1.2多态的实现 236
8.2运算符重载 236
8.2.1运算符重载的规则 237
8.2.2运算符重载为成员函数 238
8.2.3运算符重载为友元函数 242
8.3虚函数 243
8.3.1一般虚函数成员 244
8.3.2虚析构函数 246
8.4抽象类 246
8.4.1纯虚函数 247
8.4.2抽象类 247
8.5程序实例——用变步长梯形积分算法求解函数的定积分 249
8.5.1算法基本原理 249
8.5.2程序设计分析 250
8.5.3源程序及说明 251
8.5.4运行结果与分析 254
8.6程序实例——对一个小型公司的人员信息管理系统程序的改进 254
8.7小结 260
习题 261
第9章群体类 263
9.1线性群体 263
9.1.1线性群体的概念 263
9.1.2直接访问群体——数组类 266
9.1.3顺序访问群体——链表类 274
9.1.4栈类 286
9.1.5队列类 293
9.2C++标准库中的容器类297
9.2.1与标准C++库有关的概念和术语297
9.2.2容器的接口299
9.2.3向量302
9.2.4双端队列305
9.2.5标准栈306
9.2.6标准队列307
9.2.7列表308
9.3小结 310
习题 310
第10章群体数据的组织312
10.1插入排序312
10.2选择排序313
10.3交换排序315
10.4顺序查找316
10.5折半查找317
10.6标准C++库中的算法318
1061查找算法318
1062排序算法320
10.7小结322
习题323
第11章流类库与输入/输出 324
11.1I/O流的概念 324
11.2输出流 326
11.2.1构造输出流对象 326
11.2.2使用插入运算符和控制格式 326
11.2.3输出文件流成员函数 331
11.2.4二进制输出文件 333
11.3输入流 334
11.3.1构造输入流对象 334
11.3.2使用提取运算符 335
11.3.3输入流操纵符 335
11.3.4输入流成员函数 335
11.4输入/输出流 338
11.5小结 339
习题339
第12章异常处理 341
12.1异常处理的基本思想 341
12.2C++异常处理的实现 341
12.2.1异常处理的语法 342
12.2.2异常接口声明 344
12.3异常处理中的构造与析构 345
12.4小结 347
习题 348
第13章MFC库与Windows程序开发概述 349
13.1Windows的编程模式349
13.2MFC库简介 350
13.2.1应用程序框架 351
13.2.2MFC类层次 351
13.2.3MFC类功能简介 351
13.3使用Visual C++开发Windows程序的步骤 355
13.4小结 358
习题 358
参考文献359