第1章 C++语言概述 1
1.1 C++语言的发展 1
1.2 C++语言的特点 2
1.3 面向对象程序设计 3
1.4 C++语言的基本符号 4
1.5 C++语言的词汇 5
1.5.1 关键字 5
1.5.2 标识符 5
1.5.3 字面常量 6
1.5.4 运算符 6
1.5.5 标点符号 6
1.6 C++程序的基本框架 6
1.7 C++程序的开发过程 8
1.7.1 编辑 8
1.7.2 编译 8
1.7.3 链接 9
1.7.4 运行和调试 9
本章小结 9
习题1 10
第2章 数据类型、运算符和表达式 12
2.1 C++语言的数据类型 12
2.1.1 基本类型 12
2.1.2 基本类型的派生类型 13
2.2 常量 14
2.2.1 逻辑常量 14
2.2.2 字符常量 14
2.2.3 整型常量 16
2.2.4 实型常量 17
2.2.5 枚举常量 18
2.3 变量 18
2.3.1 变量的定义 18
2.3.2 变量的使用方式 20
2.3.3 符号常量声明语句 21
2.4 运算符和表达式 22
2.4.1 运算符和表达式的概念 22
2.4.2 运算类型与运算符 23
2.4.3 赋值运算 23
2.4.4 算术运算符和算术表达式 24
2.4.5 关系运算符和关系表达式 25
2.4.6 逻辑运算符和逻辑表达式 26
2.4.7 位运算 27
2.4.8 其他运算 27
2.4.9 优先级和结合性 30
本章小结 32
习题2 33
第3章 基本控制结构 35
3.1 C++语句 35
3.2 顺序结构 35
3.2.1 声明语句 36
3.2.2 表达式语句 37
3.2.3 基本输入输出 37
3.2.4 复合语句和空语句 41
3.3 选择结构 42
3.3.1 if语句 42
3.3.2 switch语句 46
3.4 循环结构 49
3.4.1 for语句 50
3.4.2 while语句 52
3.4.3 do...while语句 54
3.4.4 循环的嵌套 55
3.5 跳转语句 57
3.5.1 break语句 58
3.5.2 continue语句 58
3.5.3 return语句 59
3.5.4 goto语句 59
本章小结 60
习题3 61
第4章 数组、指针与引用 65
4.1 数组 65
4.1.1 一维数组 65
4.1.2 多维数组 69
4.1.3 字符数组 73
4.2 指针 75
4.2.1 指针和地址 77
4.2.2 指针和数组 81
4.3 引用 84
4.4 动态存储分配 86
本章小结 88
习题4 89
第5章 函数 94
5.1 函数定义 94
5.2 函数调用 96
5.3 函数原型 96
5.4 函数返回类型 98
5.5 函数参数 100
5.5.1 参数的传递方式 100
5.5.2 默认参数 104
5.6 函数重载 105
5.7 内联函数 107
5.8 递归函数 108
5.9 变量的生存周期 111
本章小结 112
习题5 113
第6章 类和对象 118
6.1 类的定义 118
6.1.1 类的定义 118
6.1.2 类成员的访问控制 119
6.1.3 类的数据成员 121
6.1.4 类的成员函数 121
6.2 对象的定义 126
6.2.1 对象的定义 126
6.2.2 对象的成员 127
6.3 构造函数和析构函数 128
6.3.1 构造函数和析构函数的定义 128
6.3.2 默认构造函数和默认析构函数 132
6.3.3 复制构造函数 133
6.4 自由存储对象 136
6.5 this指针 138
6.6 静态成员 139
6.6.1 静态数据成员 139
6.6.2 静态成员函数 141
6.7 常成员 142
6.7.1 常对象 142
6.7.2 常成员函数 143
6.7.3 常数据成员 145
6.8 友元 146
6.8.1 友元函数 146
6.8.2 友元类 149
6.9 对象数组 150
6.10 成员对象 152
本章小结 154
习题6 155
第7章 继承和派生 164
7.1 继承与派生 164
7.1.1 基本概念 164
7.1.2 派生类的定义与构成 166
7.2 派生类对基类成员的访问 166
7.3 派生类的构造函数和析构函数 170
7.3.1 派生类的构造函数 170
7.3.2 派生类的析构函数 173
7.4 多继承与虚基类 175
7.4.1 多继承中的二义性问题 175
7.4.2 虚基类的定义 179
7.4.3 虚基类的构造函数 180
7.5 子类型关系 182
7.6 虚函数与多态性 186
7.6.1 多态性的概念 186
7.6.2 虚函数 187
7.6.3 虚析构函数 189
7.6.4 纯虚函数与抽象类 190
本章小结 192
习题7 194
第8章 运算符重载 202
8.1 运算符函数与运算符重载 202
8.2 典型运算符的重载 203
8.2.1 关于分数类fraction 203
8.2.2 重载取负运算符“-” 205
8.2.3 重载加法运算符“+” 205
8.2.4 重载增量运算符“++” 206
8.2.5 重载类型转换符“long” 207
8.2.6 重载赋值运算符“=” 207
8.2.7 重载复合赋值运算符“+=” 210
8.2.8 重载关系运算符“〉” 210
8.2.9 重载下标访问运算符“[]” 210
8.2.10 重载流运算符“〉〉”和“〈〈” 212
8.3 运算符重载应注意的几个问题 212
本章小结 214
习题8 215
第9章 模板 219
9.1 函数模板 219
9.2 类模板 221
本章小结 223
习题9 223
第10章 C++流 228
10.1 C++流的概念 228
10.1.1 C++流的体系结构 228
10.1.2 预定义流对象 228
10.1.3 提取运算符〉〉和插入运算符〈〈 228
10.1.4 有格式输入输出和无格式输入输出 230
10.1.5 操作符 230
10.2 输入输出的格式控制 230
10.2.1 默认的输入输出格式 230
10.2.2 格式标志与格式控制 231
10.2.3 输入输出宽度的控制 232
10.2.4 浮点数输出方式的控制 232
10.2.5 输出精度的控制 233
10.2.6 对齐方式的控制 234
10.2.7 小数点处理方式的控制 234
10.2.8 填充字符的控制 235
10.2.9 插入换行符 235
10.2.10 输入输出数制状态的控制 235
10.3 文件流 236
10.3.1 文件流的建立 236
10.3.2 文件流的关闭 237
10.3.3 文件流状态的判别 237
10.3.4 文件流的定位 238
10.3.5 有格式输入输出 238
10.3.6 无格式输入输出 239
本章小结 242
习题10 242
第11章 上机指导 246
11.1 上机考试系统使用说明 246
11.1.1 上机考试环境 246
11.1.2 上机考试时间 246
11.1.3 上机考试题型及分值 246
11.1.4 上机考试登录 247
11.1.5 试题内容查阅工具的使用 249
11.1.6 考生文件夹和文件的恢复 250
11.2 上机考试内容 251
11.2.1 基本操作题 251
11.2.2 简单应用题 252
11.2.3 综合应用题 255
11.3 上机考试样题 257
附录1 使用Visual C++ 6.0编写标准C++程序 269
附录2 C/C++常用标准库函数 284
附录3 ASCII码表 293
附录4 全国计算机等级考试二级C++语言程序设计考试大纲(2007年版修订版) 295
附录5 全国计算机等级考试二级C++语言程序设计样题及参考答案 298
附录6 2009年3月全国计算机等级考试二级笔试试题——C++语言程序设计 303
附录7 习题参考答案 314