第1章 C++与面向对象程序设计 1
1.1 面向对象程序设计的概念 1
1.2 为什么要学习C++ 2
1.3 一个简单的C++程序 2
1.4 程序文件与头文件 7
1.5 C++应用项目的建立 9
1.6 C++程序的运行和调试 13
1.6.1 程序的编译和链接 13
1.6.2 程序的运行 13
1.6.3 程序的调试 14
习题 16
第2章 基本数据类型与数值表达式 17
2.1 C++数据类型概述 17
2.2 整型和实型 17
2.2.1 各种整型、实型的基本情况 17
2.2.2 数值常量表示方法 18
2.2.3 变量的定义和初始化 18
2.2.4 有关操作符 19
2.3 字符型 21
2.4 枚举型 22
2.5 数值表达式 23
2.6 表达式的副作用 26
习题 27
第3章 逻辑表达式与条件分支控制 32
3.1 C++中逻辑型数据的表示 32
3.1.1 逻辑型数据的基本情况及其常量的表示 32
3.1.2 有关操作符 32
3.1.3 逻辑表达式 33
3.1.4 逻辑型与其他数据类型的关系 33
3.1.5 逻辑型数据的应用(一)——条件的表达 34
3.1.6 逻辑型数据的应用(二)——条件操作符与条件表达式 36
3.2 if语句 37
3.3 if语句的嵌套和if多分支结构 39
3.4 switch语句和switch多分支结构 41
习题 43
第4章 数组与循环控制 47
4.1 一维数组 47
4.2 一维字符数组与字符串变量 48
4.3 多维数组 49
4.4 字符串数组 49
4.5 for语句 50
4.6 while语句 54
4.7 do…while语句 57
4.8 goto语句和return语句 59
习题 60
第5章 C++函数 66
5.1 函数的声明与头文件的使用 66
5.2 函数调用与参数传递 67
5.3 函数的递归调用 69
5.4 可选参数 70
5.5 数组参数 72
5.6 inline函数 73
5.7 函数重载与名字混成 73
5.8 函数和变量的作用域 74
5.9 函数模板 76
习题 81
第6章 指针、引用和动态空间管理 85
6.1 指针 85
6.1.1 指针常量和指针变量 85
6.1.2 可施加于指针的主要操作 86
6.1.3 指针类型的强制转换 87
6.2 指针与数组 88
6.2.1 指向数组的指针 88
6.2.2 字符指针与字符串 90
6.2.3 指针数组 92
6.3 指针与函数 94
6.3.1 指针参数 94
6.3.2 指针函数:返回指针值的函数 97
6.3.3 指针与数组参数 98
6.3.4 函数指针:指向函数的指针 98
6.4 引用 101
6.4.1 引用变量和引用参数 101
6.4.2 返回引用的函数 103
6.4.3 指向函数的引用 103
6.5 动态空间管理 104
习题 106
第7章 结构、联合及声明的其他问题 113
7.1 结构 113
7.2 联合 115
7.3 位字段 116
7.4 自定义类型修饰符 116
7.5 void修饰 117
7.6 const修饰 118
7.7 复杂声明的判别 125
7.8 操作符运算的左值和右值机理 127
习题 129
第8章 类与对象 132
8.1 基本数据类型与抽象数据类型 132
8.2 类:抽象数据类型的别称 139
8.3 类成员的访问属性 140
8.4 inline成员函数 141
8.5 构造函数与对象的生成 141
8.5.1 声明构造函数的基本规则 142
8.5.2 构造函数的重载 143
8.5.3 复制构造函数 143
8.5.4 对象的生成 145
8.6 析构函数 148
8.7 this指针 149
8.8 静态成员 150
8.9 只读成员函数 152
8.10 常值数据成员 152
8.11 朋友函数与朋友类 153
8.12 对象数组 157
8.13 类对象数据成员 157
习题 161
第9章 操作符重载 169
9.1 操作符函数与操作符重载 169
9.2 一元操作符重载 169
9.3 二元操作符重载 172
9.3.1 重载的二元操作符的一般规则 172
9.3.2 重载赋值操作符“=” 173
9.3.3 重载下标访问操作符[] 174
9.3.4 重载函数访问操作符() 177
9.3.5 重载C++流操作符>>和<< 177
9.4 操作符重载应注意的几个问题 177
9.5 操作符重载应用实例 179
习题 186
第10章 类的继承 190
10.1 派生与继承 190
10.2 继承的访问控制 191
10.3 基类初始化 195
10.4 赋值兼容性 196
10.5 虚函数 196
10.6 虚析构函数 200
10.7 纯虚函数与抽象类 201
10.8 单继承与多继承 208
10.9 重复继承与虚基类 208
10.10 已有类的重用:继承还是嵌入 211
10.11 间接嵌入与多态性 214
习题 214
第11章 模板 220
11.1 函数模板与类模板 220
11.2 类模板的定义 220
11.3 模板类的继承 224
11.4 类的模板成员 231
11.5 模板的定制 232
11.6 C++标准模板库STL介绍 234
11.6.1 什么是STL 234
11.6.2 STL应用举例 238
习题 247
第12章 C++流 249
12.1 C++流的概念 249
12.2 输入输出的格式控制 252
12.2.1 格式控制标志的设置 252
12.2.2 各种格式控制的使用方法 253
12.3 文件流 257
12.4 字符串流 259
12.5 输入专门操作 261
12.6 输出专门操作 263
12.7 缓冲区与同步控制 264
习题 267
第13章 异常处理 273
13.1 异常处理的概念 273
13.2 异常事件的定义、检测和抛出 274
13.3 异常事件的捕捉和处理 275
13.4 异常事件的再抛出 281
13.5 异常处理与函数原形 283
13.6 异常事件类 284
13.7 无区分的捕捉 287
习题 288
附录 常用标准函数及其头文件 289