目录 1
第1章 绪论 1
1.1 程序设计语言的发展 1
1.2 计算机求解问题的过程 2
1.3 面向过程的程序设计方法 4
1.4 面向对象的程序设计方法 6
1.5 C++语言基础 9
1.5.1 C++语言与C语言的关系 9
1.5.2 简单的C++程序 10
1.5.3 C++语言程序结构 11
1.5.4 C++语言的单词 12
1.5.5 C++程序的书写格式 14
1.6 C++程序的编辑、编译和运行 15
习题1 18
第2章 基本数据类型和表达式 20
2.1 基本数据类型 20
2.2 变量和常量 21
2.2.1 变量 21
2.2.2 常量 23
2.3 运算符和表达式 27
2.3.1 算术运算 28
2.3.2 关系和逻辑运算 29
2.3.3 赋值运算符和赋值表达式 31
2.3.4 逗号运算符与逗号表达式 32
2.3.5 其他运算符 32
2.4 类型定义语句 33
习题2 34
3.1.1 键盘输入 38
第3章 结构化程序设计 38
3.1 基本的输入和输出 38
3.1.2 标准格式输出(即默认格式) 40
3.1.3 使用控制符的输出 41
3.2 选择结构(分支) 44
3.2.1 if语句 44
3.2.2 switch语句 46
3.3 循环控制结构 49
3.3.1 while语句 49
3.3.2 do-while语句 51
3.3.3 for循环语句 52
3.4 控制转向语句 55
3.4.1 break语句 55
3.4.2 continue语句 56
3.4.3 goto语句 57
3.5 控制结构程序举例 58
习题3 60
第4章 数组和字符串 66
4.1 一维数组 66
4.1.1 一维数组的定义 66
4.1.2 一维数组元素的引用 66
4.1.3 一维数组的初始化 67
4.1.4 一维数组引用举例 68
4.2 二维数组 69
4.2.1 二维数组的定义 69
4.2.2 二维数组的初始化 70
4.3.1 字符数组的初始化 71
4.3 字符数组 71
4.3.2 字符数组的输入/输出 72
4.3.3 常用字符串处理函数 73
4.3.4 二维字符数组 77
4.4 数组应用举例 78
4.4.1 矩阵相乘 78
4.4.2 选择排序 79
4.4.3 布尔数组 80
习题4 81
第5章 指针和引用 85
5.1 指针 85
5.1.1 指针概述 85
5.1.2 指针运算 87
5.2.1 数组名与指针 90
5.2 指针与数组 90
5.2.2 数组元素与指针 91
5.2.3 指向数组的指针和指针数组 94
5.3 动态存储分配(堆) 96
5.4 使用const限定符的指针 98
5.5 引用 100
5.5.1 引用的概念 100
5.5.2 引用的使用 101
5.5.3 引用与指针的区别 102
习题5 103
第6章 函数和存储类 108
6.1 函数概述 108
6.1.1 函数的定义 109
6.1.2 函数的说明 110
6.2 函数的调用 111
6.2.1 函数值和return语句 112
6.2.2 函数的调用方式 113
6.2.3 数组名作为函数参数 116
6.2.4 设置函数参数的默认值 120
6.2.5 函数的递归调用 122
6.3 函数返回值 126
6.3.1 返回引用的函数 126
6.3.2 返回指针的函数 128
6.4 函数指针 130
6.4.1 函数指针的定义 131
6.4.2 函数指针的赋值 131
6.4.3 使用函数指针调用函数 131
6.4.4 函数指针作为函数参数 132
6.5 内联函数和函数重载 134
6.5.1 内联函数 134
6.5.2 函数重载 135
6.6 函数模板 138
6.6.1 函数模板的定义 139
6.6.2 重载模板函数 140
6.6.3 模板函数 141
6.7 变量的存储类型 142
6.7.1 程序块结构 142
6.7.2 自动型变量 143
6.7.3 外部型变量 144
6.7.4 静态型变量 145
习题6 148
6.7.5 寄存器型变量 148
6.7.6 局部变量和全局变量 148
第7章 结构类型 158
7.1 结构概念 158
7.1.1 结构类型和结构变量的定义 158
7.1.2 结构成员的表示和结构的赋值 159
7.1.3 结构与数组 160
7.1.4 返回结构的函数 162
7.2 结构与链表 163
7.2.1 结构的嵌套 164
7.2.2 链表的建立和访问 164
7.2.3 链表结点的插入和删除 167
7.2.4 链表综合实例——职工信息管理系统 169
习题7 171
8.1.1 结构与类 178
第8章 类和对象基础 178
8.1 类 178
8.1.2 类的定义 179
8.2 对象 181
8.2.1 对象的定义 181
8.2.2 对象的使用 182
8.3 构造函数和析构函数 183
8.3.1 定义构造函数 183
8.3.2 默认构造函数和默认参数 185
8.3.3 拷贝构造函数和默认拷贝构造函数 186
8.3.4 构造函数重载 188
8.3.5 析构函数 189
8.3.6 综合实例 191
8.4.1 成员函数 193
8.4 类成员与友元 193
8.4.2 静态类成员 196
8.4.3 友元函数 200
8.4.4 将成员函数说明为友元 201
8.4.5 友元类 202
8.5 类模板 204
8.5.1 类模板的定义 204
8.5.2 类模板的使用 205
8.6 类的作用域和对象生存期 206
8.6.1 类的作用域 206
8.6.2 对象的生存期 207
8.6.3 局部类 209
8.6.4 嵌套类 210
习题8 211
第9章 类和对象的应用 217
9.1 对象指针和对象引用 217
9.1.1 指向对象的指针和对象引用 217
9.1.2 指向类成员的指针 219
9.1.3 this指针 222
9.2 对象数组和指向对象数组的指针 223
9.2.1 对象数组 223
9.2.2 无名对象和临时对象 225
9.2.3 对象指针数组 228
9.2.4 指向对象数组的指针 228
9.3 常(const)对象 229
9.3.1 常量成员 230
9.3.3 常成员函数 231
9.3.2 常对象 231
9.4.1 子对象 232
9.4 子对象和堆对象 232
9.4.2 堆对象与构造函数 233
习题9 237
第10章 继承和组成 244
10.1 继承和派生的基本概念 244
10.1.1 基类和派生类的关系 244
10.1.2 派生类的定义 245
10.2 派生类的继承方式 246
10.2.1 公有继承方式 246
10.2.2 私有继承方式 248
10.2.3 保护继承方式 249
10.3.1 类成员的访问权限 250
10.3 单一继承 250
10.3.2 派生类的构造函数和析构函数 251
10.4 多重继承 253
10.4.1 多重继承派生类的定义 253
10.4.2 多重继承派生类的构造函数 255
10.4.3 两义性问题 257
10.5 虚基类 261
10.5.1 虚基类的基本概念 261
10.5.2 虚基类的构造函数 263
10.6 组成 264
习题10 268
第11章 多态性和虚函数 274
11.1 运算符的重载 274
11.1.1 类成员函数实现运算符重载 275
11.1.2 运算符重载为类的友元函数 276
11.2 静态联编和动态联编 278
11.2.1 静态联编 278
11.2.2 公有继承和赋值兼容规则 280
11.2.3 动态联编与虚函数 281
11.3 纯虚函数与抽象类 284
11.3.1 纯虚函数 285
11.3.2 抽象类 286
11.4 虚析构函数 288
习题11 290
12.1 流类库 294
12.1.1 流类库基本类的继承结构 294
第12章 I/O流类库及其应用 294
12.1.2 运算符“<<”和“>>”的重载 295
12.1.3 格式控制 297
12.2 磁盘文件操作 299
12.2.1 文件操作方式 300
12.2.2 文件的打开和关闭 301
12.2.3 I/O的成员函数 302
12.2.4 二进制输出文件 307
12.3 文件读写综合实例 308
习题12 312
附录A C++常用运算符的优先级 313
附录B C语言输入/输出函数(printf、scanf) 314
附录C C语言的动态存储分配函数 318
参考文献 320