第1章 面向对象程序设计的基本知识 1
1.1 面向对象程序设计的基本思想 1
1.1.1 结构化程序设计思想 1
目录 1
1.1.2 面向对象的程序设计思想 2
1.1.3 面向对象的程序设计语言 3
1.2 面向对象程序设计的基本概念 4
1.2.1 对象的基本概念 4
1.2.3 类与对象的关系 5
1.2.4 消息 5
1.2.2 类的基本概念 5
1.3 面向对象程序语言的基本特点 6
1.3.1 抽象 6
1.3.2 封装 6
1.3.3 继承 7
1.3.4 多态 7
1.4 面向对象程序设计的模式 7
小结 10
习题 10
第2章 基本数据类型和表达式 12
2.1 基本数据类型 12
2.2.2 实型常量 14
2.2.1 整型常量 14
2.2 常量和变量 14
2.2.3 字符型常量 15
2.2.4 变量的定义 16
2.2.5 变量的作用域 17
2.3 表达式与操作符 19
2.3.1 算术运算符 20
2.3.2 关系运算符 21
2.3.3 逻辑运算符 21
2.3.4 赋值运算 22
2.3.5 逗号表达式和运算符 23
2.3.7 位操作符 24
2.3.6 sizeof运算符 24
2.4 强制类型转换 26
小结 27
习题 27
第3章 程序控制结构 29
3.1 程序结构概述 29
3.2 程序流程图 30
3.3 顺序结构 31
3.4 选择结构 32
3.4.1 if语句 32
3.4.2 ifelse语句 34
3.4.3 扩展ifelse语句 37
3.4.4 switch语句 39
3.5 循环结构 42
3.5.1 while语句 43
3.5.2 do while语句 44
3.5.3 for语句 48
3.5.4 continue和break语句 50
3.6 编译预处理 51
3.6.1 宏定义语句 51
3.6.2 文件包含语句 53
3.6.3 条件编译语句 54
小结 55
习题 56
第4章 函数 58
4.1 函数定义和声明 58
4.1.1 函数的定义 58
4.1.2 函数的返回值 59
4.1.3 函数原型的声明 59
4.2 函数的调用 61
4.3 函数参数的传递机制 63
4.3.1 值传递 63
4.3.2 引用传递 64
4.4 递归函数 67
4.5 默认参数的函数 73
小结 74
习题 74
第5章 数组、指针和结构 76
5.1 一维数组的定义与使用 76
5.1.1 一维数组的定义 76
5.1.2 一维数组的初始化 77
5.1.3 一维数组的应用 79
5.2 二维数组的定义与使用 80
5.2.1 二维数组的定义 80
5.2.2 二维数组的初始化 81
5.2.3 二维数组的应用 82
5.3 字符数组与字符串 86
5.3.1 字符数组 86
5.3.2 字符串 86
5.3.3 对字符串的操作 87
5.4 指针的概念 89
5.4.1 指针的类型 89
5.4.2 指针变量的定义与初始化 89
5.4.3 指向指针的指针变量 91
5.5 指针与数组 92
5.5.1 指针与数组的关系 92
5.5.2 指针与一维数组 93
5.5.3 指针与二维数组 94
5.5.4 指针与多维数组 97
5.6 结构的定义与使用 97
5.6.1 结构的定义 97
5.6.2 定义和使用结构变量 98
5.7 结构与数组 101
5.8 结构与指针 102
小结 106
习题 106
第6章 类 109
6.1 类的定义 109
6.1.1 类成员的访问控制 110
6.1.2 成员函数的声明和定义 113
6.2 类对象的定义和使用 117
6.2.1 类和对象的关系 117
6.2.2 通过对象来访问类的成员 118
6.2.3 利用对象指针和对象引用传递函数的参数 120
6.2.4 指向类成员的指针 123
6.2.5 常类型 125
6.2.6 对象的生存周期 129
6.3 构造函数与析构函数 129
6.4 复制构造函数 134
6.5 深复制与浅复制 136
6.6 局部类和嵌套类 140
6.7 对象数组 142
6.8 this指针 145
6.9 动态储存 147
小结 154
习题 155
第7章 静态成员与友元 157
7.1 静态成员的特点 157
7.2 静态成员变量 158
7.3 静态成员函数 162
7.4 友元的特点 165
7.5 一般友元函数 166
7.6 友元成员 169
7.7 友元类 170
小结 173
习题 173
第8章 重载 176
8.1 函数重载的特点 176
8.2 函数重载的方法 179
8.2.1 构造函数重载 179
8.2.2 类成员函数重载 181
8.2.3 类以外一般函数重载 184
8.3 运算符重载 185
8.3.1 重载为类的成员函数 186
8.3.2 以成员函数方式重载运算符实例 189
8.3.3 重载为类的友元函数 193
8.3.4 以友元函数方式重载运算符实例 196
8.4 类类型转换 200
8.4.1 隐式类型转换 200
8.4.2 显式类型转换 203
小结 205
习题 206
第9章 继承与多态 209
9.1 继承的基本概念 209
9.2 派生类对基类成员的访问控制 211
9.3 派生类的构造函数和析构函数 215
9.3.1 派生类的构造函数 215
9.3.2 派生类的析构函数 220
9.3.3 派生类的其他说明 222
9.4 访问声明调整 226
9.5 对象指针在派生类中的特性 230
9.6 多继承 234
9.7 多继承的构造函数 236
9.8 多态的特点及分类 241
9.8.1 静态联编 242
9.9.1 虚函数的定义与使用 246
9.9 虚函数 246
9.8.2 动态联编 246
9.9.2 在构造函数中调用虚函数 249
9.9.3 在析构函数中调用虚函数 250
9.9.4 关于虚函数的几点说明 252
9.10 纯虚函数与抽象类 252
小结 255
习题 256
第10章 异常处理 258
10.1 异常处理的基本思想 258
10.2 异常处理的实现 259
10.3 异常处理的规则 261
10.4 构造函数中的异常 266
小结 267
习题 268
第11章 模板 270
11.1 模板的概念 270
11.2 函数模板 272
11.3 类模板 276
小结 284
习题 284
附录A 常用字符与ASCII代码对照表 286
附录B C++术语中英文对照表 287
参考文献 290