第1章 绪论 1
1.1程序设计语言的发展 1
1.1.1计算机语言的种类 1
1.1.2面向对象程序设计 2
1.2 C++语言的产生和特点 7
1.2.1 C++语言的产生 7
1.2.2 C++语言的特点 8
1.3 C++程序中的类和对象 8
1.3.1 C++程序中的类 8
1.3.2 C++程序中的对象 10
1.3.3 C++程序的书写格式 11
1.4编写和执行C++程序 11
1.4.1 C++程序的开发环境 11
1.4.2 C++程序的编译、链接和运行 13
第2章 C++简单程序设计 19
2.1标识符和关键字 19
2.1.1标识符 19
2.1.2关键字 20
2.2基本数据类型和表达式 20
2.2.1基本数据类型 20
2.2.2常量 23
2.2.3变量 27
2.2.4运算符和表达式 30
2.2.5语句 41
2.3数据的输入与输出 43
2.3.1输入流与输出流的基本操作 44
2.3.2在输入流与输出流中使用控制符 45
2.3.3用putchar和getchar函数进行字符的输出和输入 46
2.4算法的基本控制结构 48
2.4.1顺序结构程序设计 48
2.4.2用if语句实现选择结构 50
2.4.3多重选择结构 53
2.4.4循环结构 57
2.5自定义数据类型 66
2.5.1结构体类型 66
2.5.2共用体类型 72
2.5.3枚举类型 74
2.5.4用typedef声明类型 76
第3章 函数 78
3.1函数的定义与使用 78
3.1.1函数的定义 78
3.1.2函数参数和函数的值 80
3.1.3函数的调用 81
3.2函数的嵌套调用和递归调用 84
3.2.1函数的嵌套调用 84
3.2.2函数的递归调用 87
3.3内联函数 89
3.4带默认形参值的函数 91
3.5函数重载 92
3.6程序举例 95
第4章 类与对象 97
4.1面向对象程序设计的基本特点 97
4.1.1抽象 97
4.1.2封装 98
4.1.3继承 98
4.1.4多态 100
4.2类和对象 100
4.2.1类的声明 101
4.2.2类成员的访问控制 103
4.2.3类的成员函数 104
4.2.4对象 105
4.3构造函数和析构函数 107
4.3.1构造函数 107
4.3.2拷贝构造函数 108
4.3.3析构函数 112
4.4类的组合 114
第5章 C++程序的结构 118
5.1标识符的作用域与可见性 118
5.1.1作用域 118
5.1.2可见性 119
5.2对象的生存期 120
5.2.1静态生存期 120
5.2.2动态生存期 120
5.3静态成员 123
5.3.1静态数据成员 123
5.3.2静态函数成员 125
5.4友元 126
5.4.1友元函数 127
5.4.2友元类 130
5.5共享数据的保护 131
5.5.1常引用 131
5.5.2常对象 131
5.5.3用const修饰的类成员 132
5.6多文件结构和编译预处理命令 134
5.6.1程序的一般组织结构 134
5.6.2外部变量与外部函数 136
5.6.3标准C++库和命名空间 138
5.6.4编译预处理 139
第6章 数组、指针与字符串 143
6.1数组的概念 143
6.2一维数组 144
6.2.1一维数组的定义与存储 144
6.2.2一维数组的引用 144
6.2.3一维数组的初始化 145
6.2.4一维数组的程序示例 145
6.3二维数组 147
6.3.1二维数组的定义与存储 147
6.3.2二维数组引用 148
6.3.3二维数组初始化 148
6.3.4二维数组的程序示例 150
6.3.5多维数组 151
6.3.6数组做函数参数 152
6.4指针 154
6.4.1指针的定义 154
6.4.2指针运算符 155
6.4.3数组与指针 156
6.4.4字符指针 159
6.4.5指针作为函数参数 159
6.5指针与对象 163
6.5.1指向对象的指针 163
6.5.2 this指针 166
6.6动态分配内存 167
6.6.1 new运算和delete运算 167
6.6.2动态内存分配与释放函数 168
6.7字符串 169
6.7.1用字符数组存储和处理字符串 169
6.7.2 string类 173
第7章 继承与派生 176
7.1类的继承与派生 176
7.1.1继承和派生的基本概念 176
7.1.2单一继承 177
7.2继承方式 178
7.2.1公有继承方式public 179
7.2.2私有继承方式private 180
7.2.3保护继承方式protected 182
7.3派生类的构造函数和析构函数 183
7.3.1派生类的构造函数 183
7.3.2派生类的析构函数 188
7.4多重继承 189
7.4.1多重继承的定义 189
7.4.2多重继承的构造函数 189
7.5虚基类 191
7.5.1多重继承中的二义性 191
7.5.2虚基类 194
7.5.3虚基类及其派生类的构造函数 195
第8章 多态性 199
8.1多态性概述 199
8.1.1静态联编 199
8.1.2动态联编 200
8.2运算符重载 203
8.2.1运算符重载的规则 203
8.2.2运算符重载为成员函数 204
8.2.3运算符重载为友元函数 206
8.3虚函数 209
8.3.1虚函数实现动态多态 209
8.3.2虚析构函数 212
8.3.3纯虚函数与抽象类 213
第9章 群体类和群体数据的组织 216
9.1模板概述 216
9.1.1模板的概念 216
9.1.2函数模板 216
9.1.3类模板 219
9.2线性群体类 222
9.2.1线性群体的概念 222
9.2.2数组类 222
9.2.3链表类 226
9.3群体数据的组织 231
9.3.1直接插入排序 231
9.3.2选择排序 232
9.3.3交换排序 234
9.3.4顺序查找 236
9.3.5折半查找 237
第10章 泛型程序设计与C++标准模板库STL 240
10.1泛型程序设计概述 240
10.1.1泛型程序设计 240
10.1.2命名空间的概念 240
10.1.3头文件命名规则 241
10.1.4标准模板库相关概念和术语 242
10.2 C++标准模板库中的容器 244
10.2.1顺序容器 244
10.2.2关联容器 248
10.2.3容器适配器 249
10.3迭代器 250
10.3.1迭代器的类型 250
10.3.2迭代器相关的辅助函数 251
10.4标准C++库中的算法 252
10.4.1不可变序列算法 253
10.4.2可变序列算法 254
10.4.3排序相关算法 257
10.4.4数值算法 260
10.5函数对象 260
第11章 流类库与输入/输出 262
11.1 I/O流的概念及流类库结构 262
11.1.1流的概念 262
11.1.2 C++的I/O对C的发展——类型安全和可扩展性 262
11.1.3 C++的输入输出流 263
11.2标准输出流 265
11.2.1 cout,cerr和clog流 265
11.2.2标准类型数据的格式输出 266
11.2.3用流成员函数put输出字符 269
11.3标准输入流 270
11.3.1 cin流 270
11.3.2用于字符输入的流成员函数 270
11.3.3 istream类的其他成员函数 271
11.4对数据文件的操作与文件流 272
11.4.1文件的概念 272
11.4.2文件流类与文件流对象 272
11.4.3文件的打开与关闭 272
11.4.4对文本文件的操作 274
11.4.5对二进制文件的操作 275
11.5字符串流 278
第12章 异常处理 280
12.1异常处理的基本思想 280
12.2 C++异常处理的实现 280
12.2.1异常处理的语法 280
12.2.2异常接口声明 283
12.3异常处理中的构造与析构 283