1.1 概述 1
1.1.1 面向对象方法的由来和发展 1
第1章 绪论 1
1.1.2 面向对象程序语言 2
1.1.3 Visual C++语言的发展 3
1.2 C++程序的基本结构 4
1.3 程序的调试和运行 5
实验 9
习题 10
2.1.1 字符集 11
2.1.2 关键字 11
2.1 词法符号 11
第2章 数据类型和表达式 11
2.1.3 标识符 12
2.2 基本数据类型 12
2.3 常量和变量 14
2.3.1 常量 14
2.3.2 变量 16
2.4 运算符和表达式 18
2.4.1 算术运算和表达式 18
2.4.2 关系运算符 19
2.4.3 逻辑运算 21
2.4.4 赋值运算 22
2.4.5 逗号运算 23
2.4.6 sizeof运算符 24
2.5.1 自动类型转换 25
2.5.2 强制类型转换 25
2.5 类型转换 25
2.6 枚举类型 26
2.7 typedef 28
实验 28
习题 29
第3章 C++简单程序设计 31
3.1 基本语句 31
3.2 数据的输入和输出 32
3.2.1 数据的输出 32
3.2.2 数据的输入 35
3.3 算法的基本控制结构 36
3.3.1 顺序结构程序设计 36
3.3.2 选择结构程序设计 37
3.4 循环结构的实现 46
3.4.1 while语句 47
3.4.2 do...while语句 48
3.4.3 for语句 48
3.4.4 循环的嵌套 51
3.4.5 其他控制语句 53
3.5 程序设计举例 54
实验 55
习题 56
第4章 数组 58
4.1 一维数组 58
4.1.1 定义 58
4.1.2 数组元素的使用 59
4.1.3 数组元素的输入和输出 60
4.1.4 初始化 60
4.2.1 定义 63
4.2 二维数组 63
4.2.2 数组的使用 64
4.2.3 数组元素的输入和输出 64
4.2.4 初始化 65
4.3 字符数组 67
4.3.1 定义 67
4.3.2 初始化 67
4.3.3 字符串和字符串结束标志 67
4.3.4 字符串的输入和输出 69
4.3.5 字符串处理函数 70
实验 73
习题 74
5.1.1 函数概念的引入 75
5.1 函数的定义和使用 75
第5章 函数 75
5.1.2 函数定义 76
5.1.3 函数调用 79
5.1.4 参数传递机制 81
5.2 嵌套调用 84
5.3 递归调用 84
5.4 全局变量和局部变量 86
5.4.1 局部变量 86
5.4.2 全局变量 87
5.5 内联函数 89
5.5.1 内联函数的引入 89
5.5.2 内联函数定义 90
5.6.1 重载函数的引入 91
5.6.2 调用重载函数时的选择原则 91
5.6 重载函数 91
5.6.3 应用示例 92
5.7 默认参数函数 93
5.7.1 默认参数函数的使用 93
5.7.2 使用时的注意问题 94
实验 95
习题 95
第6章 指针和结构体 97
6.1 指针 97
6.1.1 指针的概念 97
6.1.2 指针变量的定义 98
6.1.3 指针变量的初始化 99
6.1.4 指针的运算 102
6.2.2 通过指针变量使用数组元素 105
6.2.1 指向数组的指针 105
6.2 指针和数组 105
6.2.3 指针和字符串 109
6.3 结构体类型 112
6.3.1 定义 112
6.3.2 结构体类型变量定义 113
6.3.3 结构体变量初始化 115
6.3.4 结构体成员的访问 116
6.3.5 结构体数组 117
6.3.6 结构体指针 121
6.4 联合体 123
6.4.1 定义 124
6.4.2 访问联合体成员 124
6.4.3 联合体类型特点 125
6.5 内存管理 126
习题 129
实验 129
第7章 程序结构和编译预处理 131
7.1 外部存储类型 131
7.2 静态存储类型 132
7.2.1 静态全局变量 132
7.2.2 静态函数 134
7.3 作用域 135
7.3.1 函数原型作用域 135
7.3.2 块作用域 136
7.3.3 文件作用域 137
7.4 可见性 138
7.5 生命期 139
7.5.1 局部变量的存储方式 139
7.5.2 全局变量的存储方式 142
7.6 编译预处理 144
7.6.1 宏定义 144
7.6.2 文件包含 148
7.6.3 条件编译 150
实验 154
习题 155
第8章 类和对象 157
8.1 类和对象的定义与应用 157
8.1.1 类的定义 157
8.1.2 类成员访问控制 158
8.1.3 类的成员函数 159
8.1.4 对象 160
8.1.5 程序实例 161
8.2.1 构造函数 162
8.2 构造函数和析构函数 162
8.2.2 复制构造函数 163
8.2.3 析构函数 165
8.2.4 程序实例 166
8.3 类的聚集 167
8.3.1 类的聚集 167
8.3.2 前向引用声明 170
8.4 类模板 170
8.5 静态成员 171
8.5.1 静态数据成员 171
8.5.2 静态函数成员 173
8.6 友元 174
8.6.1 友元函数 174
8.6.2 友元类 175
8.7.2 常对象 176
8.7 共享数据的保护 176
8.7.1 常引用 176
8.7.3 用const修饰的对象成员 177
实验 177
习题 178
第9章 继承和派生 180
9.1 概述 180
9.1.1 实例 180
9.1.2 派生类定义 181
9.1.3 派生类生成过程 182
9.2 访问控制 183
9.2.1 公有继承 183
9.2.2 私有继承 185
9.2.3 保护继承 187
9.3 派生类的构造函数和析构函数 188
9.3.1 构造函数 189
9.3.2 析构函数 191
9.4 派生类成员的标识和访问 193
9.4.1 作用域分辨符 194
9.4.2 虚基类 197
9.5 程序实例 199
9.5.1 问题的提出 199
9.5.2 类设计 200
9.5.3 源程序及说明 201
9.5.4 运行结果和分析 205
实验 206
习题 206
10.2 重载 207
10.2.1 函数名重载 207
第10章 虚函数和多态性 207
10.1 多态性的基本概念 207
10.2.2 运算符重载 210
10.3 虚函数 213
10.3.1 类型相容 213
10.3.2 虚函数的定义与访问 215
10.3.3 纯虚函数和抽象类 217
10.3.4 程序举例 218
实验 219
习题 221
11.1.1 流的概念 222
11.1.2 输出流 222
11.1 I/O流的概念 222
第11章 输入/输出流 222
11.1.3 输入流 225
11.2 文件流 226
11.2.1 输出文件流 227
11.2.2 输入文件流 229
11.3 文件流应用举例 232
实验 234
习题 235
第12章 综合实训应用实例 236
12.1 Josephus问题 236
12.1.1 编程目的 236
12.1.2 系统简介 236
12.1.3 编程思路 236
12.1.4 程序代码 237
12.1.5 程序演示 240
12.2 图书管理系统设计 241
12.2.1 编程目的 241
12.2.2 系统简介 241
12.2.3 编程思路 241
12.2.4 程序代码 242
12.2.5 程序演示 252
12.3 学生成绩管理设计 253
12.3.1 编程目的 253
12.3.2 系统简介 253
12.3.3 编程思路 253
12.3.4 程序代码 255
12.3.5 程序演示 264
附录A 常用库函数 265
参考文献 267