第1章 C++概述 1
1.1 计算机语言及其发展 1
1.1.1 机器语言 1
1.1.2 汇编语言 2
1.1.3 高级语言 2
1.2 面向对象程序设计 3
1.2.1 面向对象的思想 3
1.2.2 面向对象程序设计的基本特征 4
1.3 C++语言特点及其对C语言的扩充 5
1.3.1 C++语言的特点 5
1.3.2 C++语言对C语言的扩充 5
1.4 C++程序结构 12
1.5 C++程序的编写和实现 13
1.6 小结 17
第2章 数据类型、表达式与语句 18
2.1 C++语言的词法 18
2.1.1 字符集 18
2.1.2 关键字与标识符 18
2.2 数据类型概述 19
2.2.1 数据类型的含义及作用 19
2.2.2 C++语言的数据类型 19
2.2.3 数据的存储格式 20
2.3 常量与变量 21
2.3.1 常量 22
2.3.2 变量 24
2.4 运算符与表达式 25
2.4.1 表达式简介 25
2.4.2 算术运算符与算术表达式 25
2.4.3 关系运算符与关系表达式 26
2.4.4 逻辑运算符与逻辑表达式 27
2.4.5 赋值运算符与赋值表达式 28
2.4.6 位运算符 29
2.5 算法 30
2.5.1 算法的概念及分类 30
2.5.2 算法的特点及其描述 30
2.6 语句 32
2.6.1 C++语句概述 32
2.6.2 结构化程序设计 33
2.6.3 顺序结构语句 34
2.6.4 选择结构语句 36
2.6.5 循环结构语句 42
2.6.6 无条件跳转语句 51
2.7 小结 52
第3章 函数与程序结构 53
3.1 概述 53
3.2 函数的定义与调用 54
3.2.1 函数的定义 54
3.2.2 函数的声明 56
3.2.3 函数的调用 58
3.3 变量作用域与可见性 65
3.3.1 变量的作用域 65
3.3.2 变量的可见性 66
3.4 变量的存储类型 67
3.4.1 auto自动型 68
3.4.2 register寄存器型 68
3.4.3 static静态型 68
3.5 编译预处理 69
3.5.1 文件包含 69
3.5.2 宏定义 70
3.5.3 条件编译 73
3.6 函数的一些高级议题 74
3.6.1 内联函数 74
3.6.2 缺省参数 75
3.6.3 函数重载 76
3.7 小结 78
第4章 数组、指针与结构体 79
4.1 概述 79
4.2 数组 79
4.2.1 一维数组 80
4.2.2 二维数组 85
4.2.3 字符串 88
4.2.4 字符串数组 94
4.3 指针与引用 95
4.3.1 指针及指针变量的概念 95
4.3.2 指针变量的声明、初始化及运算 96
4.3.3 指针运算 98
4.3.4 指针与数组 99
4.3.5 指针与函数 112
4.3.6 引用 115
4.3.7 对常量使用指针和引用 117
4.4 结构体 118
4.4.1 结构体类型数据的声明与初始化 118
4.4.2 结构体类型数据的引用 120
4.4.3 结构体类型数据与函数 122
4.5 其他构造数据类型 1288
4.5.1 枚举类型 128
4.5.2 用typedef声明类型 129
4.6 小结 130
第5章 类和对象 131
5.1 概述 131
5.2 类和对象 133
5.2.1 类的声明 133
5.2.2 对象的定义格式 136
5.2.3 对象的成员表示 136
5.3 构造函数与析构函数 137
5.3.1 构造函数与默认构造函数 137
5.3.2 拷贝构造函数与默认拷贝构造函数 139
5.3.3 析构函数与默认析构函数 142
5.4 静态成员 143
5.4.1 静态数据成员 144
5.4.2 静态成员函数 146
5.5 友元 147
5.5.1 友元函数 148
5.5.2 友元类 150
5.6 对象数组和对象指针 151
5.6.1 对象数组 151
5.6.2 对象指针 153
5.6.3 对象引用 156
5.7 小结 158
第6章 继承和派生 160
6.1 概述 160
6.1.1 继承与派生的概念 160
6.1.2 派生类的声明 162
6.1.3 派生类的生成过程 162
6.2 类的继承方式 164
6.2.1 公有继承 164
6.2.2 私有继承 166
6.2.3 保护继承 168
6.3 派生类的构造函数与析构函数 172
6.3.1 派生类的构造函数 172
6.3.2 派生类的析构函数 174
6.4 多重继承 176
6.5 小结 181
第7章 多态性 183
7.1 概述 183
7.2 运算符重载 183
7.2.1 运算符重载的规则 184
7.2.2 运算符重载为成员函数 184
7.2.3 运算符重载为友元函数 188
7.2.4 其他运算符重载 190
7.3 虚函数 194
7.3.1 虚函数的定义 195
7.3.2 虚函数的使用原则 196
7.3.3 虚函数的访问 197
7.4 纯虚函数与抽象类 197
7.5 小结 200
第8章 模板 202
8.1 概述 202
8.2 函数模板 202
8.2.1 函数模板的声明 203
8.2.2 函数模板的应用举例 205
8.3 类模板 209
8.3.1 类模板的声明 209
8.3.2 类模板的应用举例 211
8.4 标准模板库 214
8.4.1 标准模板库(STL)概述 214
8.4.2 STL容器 216
8.4.3 STL算法 221
8.5 小结 226
第9章 流与异常处理 227
9.1 概述 227
9.2 输入输出流 227
9.2.1 输入输出标准流类 227
9.2.2 格式化输入与输出 230
9.2.3 输入输出运算符重载 235
9.3 文件流类 236
9.3.1 文件的打开与关闭 237
9.3.2 文本文件的读写操作 239
9.3.3 二进制文件的读写操作 242
9.4 异常处理 244
9.4.1 异常处理机制 245
9.4.2 异常处理的实现 246
9.4.3 异常处理的应用 249
9.5 小结 251
附录1 字符与ASCII码对照表 252
附录2 C++常用关键字及其含义 253
附录3 运算符优先级与结合性 254
附录4 C/C++语言常用库函数 256
附录5 UML与可视化建模图形符号简介 259
参考文献 266