第1章 程序设计概述 1
1.1 程序设计和程序设计语言 1
1.2 算法 2
1.2.1 算法的概念和特征 2
1.2.2 算法的表示 4
1.3 简单的C++程序 9
1.4 创建和运行C++程序 12
1.5 Visual C++集成开发环境 17
1.6 综合案例分析 19
本章小结 22
习题1 22
第2章 基本数据类型和表达式 22
2.1 基本语法成分 23
2.2 基本数据类型 24
2.3 变量和常量 26
2.3.1 常量 26
2.3.2 变量 28
2.4 运算符和表达式 32
2.4.1 算术运算符及算术表达式 33
2.4.2 关系运算符及关系表达式 34
2.4.3 逻辑运算符及逻辑表达式 35
2.4.4 赋值运算符和赋值表达式 36
2.4.5 位运算符 37
2.4.6 条件运算符 39
2.4.7 逗号运算符 39
2.4.8 表达式中数据类型的转换 40
2.5 综合案例分析 41
本章小结 43
习题2 44
第3章 程序控制结构 45
3.1 顺序结构 45
3.1.1 数据的输入和输出 45
3.1.2 表达式语句 48
3.1.3 空语句 49
3.1.4 复合语句 49
3.2 分支结构 49
3.2.1 if语句 49
3.2.2 switch语句 53
3.3 循环结构 55
3.3.1 while语句 55
3.3.2 do-while语句 56
3.3.3 for语句 57
3.3.4 循环嵌套 59
3.4 转向控制 62
3.4.1 break语句 62
3.4.2 continue语句 63
3.4.3 goto语句 64
3.5 综合案例分析 64
本章小结 68
习题3 69
第4章 数组 70
4.1 一维数组 70
4.1.1 一维数组的定义与初始化 70
4.1.2 一维数组元素的引用 71
4.2 二维数组 73
4.2.1 二维数组的定义与初始化 74
4.2.2 二维数组元素的引用 75
4.3 字符型数组与字符串 79
4.3.1 字符型数组 79
4.3.2 字符型数组与字符串 80
4.3.3 字符型数组的输入输出 81
4.3.4 常用字符串处理函数 81
4.4 综合案例分析 85
本章小结 87
习题4 88
第5章 指针与引用 90
5.1 指针 90
5.1.1 指针的概念 90
5.1.2 指针的定义与使用 91
5.1.3 指针与数组 94
5.1.4 指针与字符串 97
5.1.5 动态存储分配 98
5.2 引用 101
5.3 综合案例分析 102
本章小结 104
习题5 104
第6章 结构体与共用体 108
6.1 结构体 108
6.1.1 结构体的定义与初始化 108
6.1.2 结构体的引用 112
6.1.3 结构体数组 114
6.1.4 结构体与指针 116
6.2 共用体 118
6.2.1 共用体与共用体变量的定义 119
6.2.2 共用体变量的引用 120
6.2.3 共用体与指针 122
6.3 综合案例分析 122
本章小结 125
习题6 125
第7章 函数 127
7.1 函数的定义与调用 127
7.1.1 函数的定义 127
7.1.2 函数的调用 128
7.1.3 函数返回值 128
7.1.4 函数原型 129
7.2 函数的参数 130
7.2.1 函数的参数传递 130
7.2.2 数组作为函数参数 134
7.2.3 函数的默认参数 135
7.3 内联函数 136
7.4 函数重载 137
7.5 递归函数 138
7.6 标识符作用域与变量的存储特性 140
7.6.1 标识符作用域 140
7.6.2 变量的存储特性 141
7.7 综合案例分析 145
本章小结 148
习题7 149
第8章 类与对象 152
8.1 类定义和访问 152
8.1.1 定义类和对象 152
8.1.2 访问对象成员 156
8.1.3 this指针 157
8.2 构造函数和析构函数 159
8.2.1 构造函数的含义 159
8.2.2 带参数的构造函数 162
8.2.3 重载构造函数 165
8.2.4 复制构造函数 168
8.2.5 析构函数 171
8.2.6 浅复制与深复制 173
8.3 静态成员 177
8.3.1 静态数据成员 177
8.3.2 静态成员函数 180
8.4 友元 183
8.4.1 友元函数 184
8.4.2 友元类 187
8.5 对象数组、指针和引用 189
8.5.1 对象数组 189
8.5.2 对象指针 191
8.5.3 对象引用 194
8.6 常类型 195
8.6.1 常指针和常引用 195
8.6.2 常成员函数 198
8.6.3 常数据成员 199
8.7 综合案例分析 200
本章小结 210
习题8 210
第9章 运算符重载 217
9.1 概述 217
9.2 运算符重载的一般规则 219
9.3 用成员函数或友元函数重载运算符 219
9.3.1 用成员函数重载运算符 220
9.3.2 用友元函数重载运算符 223
9.4 一些特殊操作符的重载 225
9.4.1 重载++与--运算符 225
9.4.2 重载赋值运算符 228
9.4.3 重载运算符[]和() 230
9.4.4 重载插入运算符<<和提取运算符>> 234
9.5 类类型转换 237
9.5.1 构造函数用于类型转换 237
9.5.2 类型转换函数 238
9.6 综合案例分析 240
本章小结 250
习题9 251
第10章 继承 252
10.1 基类和派生类 252
10.1.1 继承和派生的概念 252
10.1.2 派生类的定义 253
10.1.3 类的继承方式 256
10.2 单继承 263
10.2.1 成员访问权限在继承中的控制 263
10.2.2 单继承下的构造函数和析构函数 264
10.3 多继承 269
10.3.1 多继承的声明 269
10.3.2 多继承的构造函数和析构函数 272
10.3.3 二义性问题 275
10.4 虚基类 280
10.4.1 虚基类的声明 280
10.4.2 虚基类及其派生类的构造函数 282
10.5 综合案例分析 284
本章小结 288
习题10 288
第11章 虚函数和多态性 294
11.1 静态联编和动态联编 294
11.2 虚函数 297
11.2.1 虚函数的定义 297
11.2.2 虚函数与动态联编 300
11.2.3 虚函数的重载 304
11.2.4 虚析构函数 309
11.3 纯虚函数和抽象类 312
11.3.1 纯虚函数 312
11.3.2 抽象类 314
11.4 多态性 320
11.5 综合案例分析 321
本章小结 325
习题11 325
第12章 输入输出流 329
12.1 输入输出流的概念 329
12.2 标准流和流操作 331
12.2.1 基本输入输出操作 331
12.2.2 输入输出格式控制 335
12.3 文件处理 340
12.3.1 文件的打开和关闭 341
12.3.2 文本文件的访问 343
12.3.3 二进制文件的访问 345
12.3.4 文件的随机访问 346
12.4 综合案例分析 349
本章小结 355
习题12 355
第13章 模板和异常处理 356
13.1 模板 356
13.1.1 模板的概念 356
13.1.2 函数模板 357
13.1.3 类模板 360
13.2 异常处理 362
13.2.1 异常处理的基本概念 363
13.2.2 异常处理的实现 363
13.3 综合案例分析 366
本章小结 368
习题13 368
参考文献 369