第1章 绪论 1
1.1 面向对象程序设计的特点 1
1.1.1 面向对象程序设计的基本概念 1
1.1.2 面向对象程序设计的特点 2
1.2 面向对象程序设计语言C++ 5
1.2.1 C++语言的产生和发展 5
1.2.2 C++语言的特点 5
1.3 C++程序结构 6
1.4 C++程序开发过程 8
1.4.1 C++程序开发过程 8
1.4.2 Visual C++6.0集成开发环境 8
1.5 小结 12
习题 13
第2章 数据类型与程序控制流程 14
2.1 关键字和标识符 14
2.1.1 关键字 14
2.1.2 标识符 14
2.2 基本数据类型 15
2.3 常量与变量 16
2.3.1 常量 16
2.3.2 变量 19
2.4 运算符与表达式 20
2.4.1 算术运算符和算术表达式 21
2.4.2 赋值运算符和赋值表达式 22
2.4.3 关系运算符和关系表达式 23
2.4.4 逻辑运算符和逻辑表达式 23
2.4.5 条件运算符和条件表达式 24
2.4.6 sizeof运算符 25
2.4.7 位运算符 25
2.4.8 逗号运算符和逗号表达式 26
2.4.9 混合运算时数据类型的转换 26
2.5 输入输出简介 30
2.5.1 输入操作符 30
2.5.2 输出操作符 31
2.5.3 常用控制符 32
2.6 程序的基本控制结构 33
2.6.1 if语句 33
2.6.2 if语句的嵌套 36
2.6.3 switch语句 38
2.6.4 循环语句 39
2.6.5 循环嵌套 42
2.7 C++构造类型 43
2.7.1 结构体类型 43
2.7.2 共用体类型 44
2.7.3 枚举类型 46
2.8 用户自定义类型 46
2.9 小结 47
习题 48
第3章 函数 49
3.1 函数的定义与使用 49
3.1.1 函数的定义 49
3.1.2 函数的声明与调用 50
3.1.3 函数的参数传递 52
3.2 函数的嵌套调用和递归调用 58
3.2.1 嵌套调用 58
3.2.2 递归调用 59
3.3 内联函数 61
3.4 带默认形参值的函数 63
3.5 函数重载 63
3.6 变量的作用域和生存期 65
3.6.1 变量的作用域 66
3.6.2 变量的生存期 69
3.7 小结 73
习题 74
第4章 数组与指针 75
4.1 数组 75
4.1.1 数组的定义与引用 75
4.1.2 数组的初始化 79
4.1.3 数组作为函数参数 83
4.2 指针 86
4.2.1 指针与地址 86
4.2.2 指向变量的指针 87
4.2.3 指针作为函数参数 89
4.2.4 指向数组的指针 90
4.2.5 指向函数的指针 98
4.2.6 返回指针的函数 100
4.2.7 指针数组与多级指针 102
4.2.8 指向结构体的指针 104
4.2.9 new和delete操作符 106
4.3 字符串 109
4.3.1 用字符数组处理字符串 109
4.3.2 用指向字符串的指针处理字符串 111
4.3.3 用string类处理字符串 113
4.4 小结 116
习题 116
第5章 类与对象 118
5.1 对象与类的概念 118
5.1.1 对象 118
5.1.2 类 118
5.2 类的定义与对象的创建 119
5.2.1 类成员的表示 119
5.2.2 类的定义 119
5.2.3 对象的创建与使用 120
5.3 类成员的访问控制 122
5.4 类的信息隐藏 126
5.5 对象的初始化与消亡 130
5.5.1 构造函数 130
5.5.2 析构函数 133
5.6 对象的赋值与复制 135
5.6.1 对象的赋值 135
5.6.2 对象的复制 136
5.6.3 复制构造函数 137
5.7 对象数组 145
5.8 指向对象的指针与对象的引用 148
5.8.1 指向对象的指针 148
5.8.2 this指针 151
5.8.3 对象的动态创建与销毁 152
5.8.4 对象的引用 154
5.9 类的组合 155
5.9.1 组合的概念 155
5.9.2 组合类的构造函数 156
5.9.3 组合类的应用 160
5.10 字符串类 163
5.11 类的静态成员 164
5.11.1 静态数据成员 164
5.11.2 静态函数成员 165
5.12 类的友元 167
5.12.1 友元函数 167
5.12.2 友元类 168
5.13 共享数据的保护 168
5.13.1 常函数成员 168
5.13.2 常对象 169
5.13.3 常数据成员 170
5.13.4 对象的常引用作为函数参数 171
5.14 小结 172
习题 172
第6章 继承 174
6.1 继承与派生的概念 174
6.2 派生类的声明 175
6.3 派生类的设计过程 176
6.4 继承方式与访问控制 177
6.4.1 公有继承 178
6.4.2 保护继承 181
6.4.3 私有继承 183
6.5 派生类的构造函数和析构函数 184
6.5.1 派生类的构造函数 184
6.5.2 派生类的复制构造函数 190
6.5.3 派生类的析构函数 190
6.6 派生类与基类的兼容性 191
6.7 多继承 195
6.7.1 多继承的构造函数 195
6.7.2 虚基类 197
6.7.3 虚基类和派生类的构造函数 198
6.8 小结 199
习题 199
第7章 多态 201
7.1 多态的概念 201
7.2 运算符重载 201
7.2.1 运算符重载的概念与形式 201
7.2.2 运算符重载的规则 203
7.2.3 将运算符重载为类的成员函数和友元函数 204
7.3 虚函数 208
7.3.1 虚函数的引入 208
7.3.2 虚函数的作用 213
7.3.3 虚析构函数 217
7.4 纯虚函数与抽象类 218
7.5 模板 222
7.5.1 函数模板 222
7.5.2 类模板 223
7.6 小结 224
习题 225
第8章 输入输出流 226
8.1 输入输出流的概念 226
8.2 C++输入输出流类库 226
8.3 标准输入输出流 228
8.3.1 标准输出流 228
8.3.2 标准输入流 231
8.4 文件 234
8.4.1 文件的概念 234
8.4.2 文件流类 234
8.4.3 文件流对象与文件的打开和关闭 235
8.4.4 文本文件的操作 236
8.4.5 二进制文件的操作 239
8.5 字符串流 242
8.6 小结 244
习题 244
第9章 异常处理 245
9.1 异常处理思想 245
9.2 异常处理方法 245
9.2.1 异常处理语法 245
9.2.2 定义异常类 249
9.3 在定义函数时声明异常 250
9.4 C++标准异常类 251
9.5 异常处理中对象的析构 252
9.6 小结 253
习题 253
第10章 综合设计 254
10.1 顺序表的设计 254
10.2 银行账户程序设计 260
10.3 设计链表类 267
10.4 小结 273
习题 274