第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设计 5
1.3.3编程 6
1.3.4测试 6
1.3.5维护 6
1.4信息的表示与存储 6
1.4.1计算机的数字系统 7
1.4.2几种进位记数制之间的转换 8
1.4.3信息的存储单位 10
1.4.4二进制数的编码表示 11
1.4.5定点数和浮点数 14
1.4.6数的表示范围 15
1.4.7非数值信息的表示 16
1.5程序的开发过程 16
1.5.1基本术语 16
1.5.2程序的开发过程 17
习题 18
1.6小结 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词法记号 22
2.2基本数据类型和表达式 23
2.2.2常量 24
2.2.1基本数据类型 24
2.2.3变量 26
2.2.4符号常量 27
2.2.5运算符与表达式 28
2.3.1I/O流 36
2.3.2预定义的插入符和提取符 36
2.3数据的输入与输出 36
2.2.6语句 36
2.3.3简单的I/O格式控制 37
2.4算法的基本控制结构 38
2.4.1用if语句实现选择结构 39
2.4.2多重选择结构 40
2.4.3循环结构 43
2.4.4循环结构与选择结构的嵌套 48
2.4.5其他控制语句 50
2.5.2枚举类型——enum 51
2.5.1typedef声明 51
2.5自定义数据类型 51
2.5.3结构体 53
2.5.4联合体 55
2.6小结 57
习题 58
第3章 函数 62
3.1函数的定义与使用 62
3.1.1函数的定义 62
3.1.2函数的调用 63
3.1.3函数的参数传递 75
3.2内联函数 79
3.3带默认形参值的函数 80
3.4函数重载 82
3.5使用C++系统函数 85
3.6小结 87
习题 87
4.1.1抽象 90
第4章 类与对象 90
4.1面向对象程序设计的基本特点 90
4.1.2封装 91
4.1.3继承 92
4.1.4多态 92
4.2类和对象 92
4.2.1类的声明 93
4.2.2类成员的访问控制 94
4.2.3类的成员函数 95
4.2.4对象 97
4.2.5程序实例 97
4.3构造函数和析构函数 98
4.3.1构造函数 99
4.3.2拷贝构造函数 101
4.3.3析构函数 104
4.3.4程序实例 105
4.4.1组合 107
4.4类的组合 107
4.4.2前向引用声明 111
4.5UML图形标识 113
4.5.1UML简介 113
4.5.2UML类图 114
4.6程序实例——人员信息管理程序 119
4.6.1类的设计 119
4.6.2源程序及说明 120
4.6.3运行结果与分析 122
4.7小结 123
习题 123
第5章 C++程序的结构 125
5.1标识符的作用域与可见性 125
5.1.1作用域 125
5.1.2可见性 127
5.2对象的生存期 127
5.2.2动态生存期 128
5.2.1静态生存期 128
5.3类的静态成员 130
5.3.1静态数据成员 131
5.3.2静态函数成员 133
5.4类的友元 135
5.4.1友元函数 137
5.4.2友元类 138
5.5.2常对象 140
5.5.1常引用 140
5.5共享数据的保护 140
5.5.3用const修饰的类成员 141
5.6多文件结构和编译预处理命令 144
5.6.1C++程序的一般组织结构 144
5.6.2外部变量与外部函数 146
5.6.3标准C++库和命名空间 147
5.6.4编译预处理 148
5.7程序实例——人员信息管理程序 151
5.8小结 154
习题 155
第6章 数组、指针与字符串 157
6.1数组 157
6.1.1数组的声明与使用 157
6.1.2数组的存储与初始化 159
6.1.3数组作为函数参数 161
6.1.4对象数组 163
6.1.5程序实例 165
6.2.1内存空间的访问方式 168
6.2指针 168
6.2.2指针变量的声明 169
6.2.3与地址相关的运算——“*”和“&” 170
6.2.4指针的赋值 170
6.2.5指针运算 173
6.2.6用指针处理数组元素 174
6.2.7指针数组 175
6.2.8用指针作为函数参数 177
6.2.10指向函数的指针 179
6.2.9指针型函数 179
6.2.11对象指针 181
6.3动态内存分配 186
6.3.1new运算和delete运算 186
6.3.2动态内存分配与释放函数 191
6.4深拷贝与浅拷贝 191
6.5字符串 195
6.5.1用字符数组存储和处理字符串 195
6.5.2string类 198
6.6程序实例——人员信息管理程序 200
6.7小结 204
习题 204
第7章 继承与派生 207
7.1类的继承与派生 207
7.1.1继承与派生的实例 207
7.1.2派生类的定义 209
7.1.3派生类生成过程 210
7.2访问控制 212
7.2.1公有继承 212
7.2.2私有继承 214
7.2.3保护继承 216
7.3类型兼容规则 218
7.4派生类的构造和析构函数 221
7.4.1构造函数 221
7.4.3析构函数 224
7.4.2拷贝构造函数 224
7.5派生类成员的标识与访问 226
7.5.1作用域分辨 226
7.5.2虚基类 231
7.5.3虚基类及其派生类构造函数 234
7.6程序实例——用高斯消去法解线性方程组 235
7.6.1算法基本原理 235
7.6.2程序设计分析 236
7.6.3源程序及说明 237
7.6.4运行结果与分析 242
7.7.1问题的提出 243
7.7.2类设计 243
7.7程序实例——人员信息管理程序 243
7.7.3源程序及说明 244
7.7.4运行结果与分析 249
7.8小结 250
习题 251
8.1.1多态的类型 252
8.1.2多态的实现 252
8.1多态性概述 252
第8章 多态性 252
8.2运算符重载 253
8.2.1运算符重载的规则 254
8.2.2运算符重载为成员函数 255
8.2.3运算符重载为友元函数 259
8.3虚函数 261
8.3.1一般虚函数成员 262
8.3.2虚析构函数 265
8.4抽象类 266
8.4.1纯虚函数 266
8.4.2抽象类 267
8.5程序实例——用变步长梯形积分算法求解函数的定积分 269
8.5.1算法基本原理 269
8.5.2程序设计分析 271
8.5.3源程序及说明 272
8.6程序实例——人员信息管理程序 274
8.5.4运行结果与分析 274
8.7小结 280
习题 281
第9章 群体类和群体数据的组织 283
9.1函数模板与类模板 284
9.1.1函数模板 284
9.1.2类模板 287
9.2线性群体 290
9.2.1线性群体的概念 290
9.2.2直接访问群体——数组类 291
9.2.3顺序访问群体——链表类 301
9.2.4栈类 307
9.2.5队列类 313
9.3群体数据的组织 316
9.3.1插入排序 316
9.3.2选择排序 317
9.3.3交换排序 319
9.3.4顺序查找 320
9.3.5折半查找 321
9.4程序实例——人员信息管理程序 322
9.5小结 323
习题 324
第10章 泛型程序设计与C++标准模板库 326
10.1泛型程序设计的概念和术语 326
10.1.1泛型程序设计 326
10.1.2命名空间的概念 327
10.1.3头文件命名规则 329
10.1.4标准模板库相关概念和术语 330
10.2C++标准模板库中的容器 331
10.2.1顺序容器 332
10.2.2容器适配器 341
10.3迭代器 343
10.3.1迭代器的类型 344
10.3.2迭代器相关的辅助函数 345
10.4标准C++库中的算法 347
10.4.1STL通用算法调用形式 348
10.4.2不可变序列算法 349
10.4.3可变序列算法 352
10.4.4排序相关算法 355
10.4.5数值算法 360
10.5函数对象 361
10.6程序实例——人员信息管理程序 364
10.7小结 366
习题 366
11.1I/O流的概念及流类库结构 369
第11章 流类库与输入/输出 369
11.2输出流 372
11.2.1构造输出流对象 372
11.2.2使用插入运算符和操纵符 373
11.2.3输出文件流成员函数 377
11.2.4二进制输出文件 379
11.3输入流 380
11.3.1构造输入流对象 380
11.3.2使用提取运算符 381
11.3.3输入流操纵符 381
11.3.4输入流成员函数 381
11.4输入/输出流 385
11.5程序实例——人员信息管理程序 385
11.6小结 387
习题 388
12.1异常处理的基本思想 390
12.2C++异常处理的实现 390
第12章 异常处理 390
12.2.1异常处理的语法 391
12.2.2异常接口声明 393
12.3异常处理中的构造与析构 394
12.4标准程序库异常处理 396
12.5程序实例——人员信息管理程序 396
12.6小结 399
习题 399
13.1Windows的编程模式 400
第13章 MFC库与Windows程序开发概述 400
13.2MFC库简介 402
13.2.1应用程序框架 402
13.2.2MFC类层次 403
13.2.3MFC类功能简介 403
13.3使用VisualC++开发Windows程序的步骤 407
13.4综合实例——人员信息管理程序 409
13.5小结 414
习题 414
参考文献 415