第0章 C++语言概述 1
0-1 C++的产生与发展 1
0-2 C++的特点 2
0-3 C++程序的基本框架 2
0-3-1 最简单的C++程序 2
0-3-2 结构化程序设计框架 3
0-3-3 面向对象程序设计框架 4
0-4 C++的词汇 6
0-4-1 基本符号 6
0-4-2 保留字 7
0-4-3 标识符 7
0-4-4 常量和变量 8
0-4-5 运算符和表达式 8
0-4-6 标点符号 8
0-5 C++程序的开发过程 9
0-5-1 Visual C++ 6.0集成开发环境简介 9
0-5-2 程序的编辑 10
0-5-3 程序的编译 10
0-5-4 程序的连接 10
0-5-5 程序的运行 10
0-5-6 程序的调试 10
0-5-7 一个简单程序的开发过程 11
0-6 小结 13
思考与练习题 13
第1章 数据类型、运算符和表达式 15
1-1 数据类型 15
1-1-1 基本数据类型 15
1-1-2 类型修饰符 16
1-2 常量 16
1-2-1 逻辑常量 17
1-2-2 整型常量 17
1-2-3 实型常量 17
1-2-4 字符常量 18
1-2-5 字符串常量 18
1-2-6 符号常量 19
1-2-7 枚举常量 19
1-3 变量 20
1-3-1 变量的概念 20
1-3-2 变量的定义 20
1-3-3 变量的使用 21
1-3-4 常变量 22
1-4 运算符和表达式 23
1-4-1 运算符和表达式简介 23
1-4-2 赋值运算符和赋值表达式 23
1-4-3 算术运算符和算术表达式 25
1-4-4 自增、自减运算符 26
1-4-5 关系运算符和关系表达式 26
1-4-6 逻辑运算符和逻辑表达式 27
1-4-7 条件运算符和条件表达式 28
1-4-8 逗号运算符和逗号表达式 29
1-4-9 size of运算符 29
1-4-10 位运算符 30
1-4-11 运算符的优先级和结合性 31
1-5 数据类型转换 31
1-5-1 隐式类型转换 31
1-5-2 显式类型转换 32
1-6 小结 32
思考与练习题 33
第2章 基本控制结构 35
2-1 C++语句概述 36
2-2 顺序结构 36
2-2-1 声明语句 36
2-2-2 表达式语句 37
2-2-3 复合语句 37
2-2-4 空语句 38
2-2-5 基本输入/输出语句 38
2-2-6 顺序结构举例 40
2-3 选择结构 41
2-3-1 if语句 41
2-3-2 switch语句 44
2-3-3 选择结构举例 46
2-4 循环结构 47
2-4-1 while语句 48
2-4-2 do-while语句 49
2-4-3 for语句 50
2-4-4 循环的嵌套 51
2-4-5 三种循环语句的比较 53
2-4-6 循环结构举例 53
2-5 跳转语句 54
2-5-1 goto语句 54
2-5-2 break语句 55
2-5-3 continue语句 56
2-5-4 return语句 56
2-6 小结 57
思考与练习题 57
第3章 函数 62
3-1 函数定义 62
3-2 函数的返回值 63
3-3 函数调用 63
3-3-1 函数调用形式 64
3-3-2 调用函数的前提条件 64
3-3-3 函数定义与函数声明的区别 65
3-3-4 函数的嵌套调用 65
3-4 函数参数 66
3-4-1 形式参数与实际参数 66
3-4-2 参数的传递方式 66
3-4-3 有默认参数值的函数 67
3-5 函数的递归调用 68
3-6 内联函数 70
3-7 函数重载 71
3-7-1 函数重载定义 71
3-7-2 匹配重载函数的顺序 72
3-7-3 定义重载函数时的注意事项 73
3-8 变量的作用域和存储类别 73
3-8-1 变量的作用域 73
3-8-2 变量的存储类别 77
3-9 编译预处理 78
3-9-1 宏定义命令 78
3-9-2 文件包含命令 79
3-9-3 条件编译命令 79
3-10 小结 81
思考与练习题 81
第4章 数组、指针与引用 84
4-1 数组 84
4-1-1 一维数组 84
4-1-2 二维数组 87
4-1-3 字符数组 90
4-1-4 字符串函数 92
4-2 指针 95
4-2-1 指针与地址 95
4-2-2 const指针 98
4-2-3 指针与数组 99
4-2-4 指针与字符串 102
4-2-5 指针数组和指向指针的指针 103
4-3 引用 104
4-3-1 引用的定义 104
4-3-2 引用的使用 104
4-3-3 用引用作为函数的参数 106
4-3-4 如何使一个被调函数同时返回多个值 107
4-4 结构体和共用体 108
4-4-1 结构体 108
4-4-2 共用体 111
4-5 堆内存的分配和释放 112
4-5-1 堆内存的分配 112
4-5-2 堆内存的释放 113
4-6 小结 114
思考与练习题 114
第5章 类和对象 118
5-1 类 118
5-1-1 类的定义 118
5-1-2 类成员的访问权限 119
5-1-3 类的数据成员 120
5-1-4 类的成员函数 120
5-2 对象 123
5-2-1 对象的定义 123
5-2-2 对象指针的定义 123
5-2-3 对象的成员 123
5-2-4 this指针 126
5-2-5 对象的作用域与生存期 126
5-3 构造函数和析构函数 127
5-3-1 构造函数 128
5-3-2 构造函数的重载 129
5-3-3 默认构造函数 130
5-3-4 有默认参数的构造函数 130
5-3-5 拷贝构造函数 132
5-3-6 析构函数 134
5-4 静态成员 135
5-4-1 静态数据成员 135
5-4-2 静态成员函数 137
5-5 友元 139
5-5-1 友元函数 139
5-5-2 友元类 142
5-6 常成员 143
5-6-1 常对象 143
5-6-2 常数据成员 144
5-6-3 常成员函数 145
5-7 对象数组 147
5-8 成员对象 148
5-9 小结 151
思考与练习题 152
第6章 继承和派生 163
6-1 继承的概念 163
6-2 派生类的定义 164
6-2-1 单继承的定义 164
6-2-2 多重继承的定义 164
6-2-3 派生类的成员构成 165
6-3 派生类对基类成员的访问 165
6-4 派生类的构造函数和析构函数 170
6-4-1 单继承方式下派生类的构造函数 170
6-4-2 多重继承方式下派生类的构造函数 175
6-4-3 有子对象的派生类的构造函数与析构函数 177
6-4-4 派生类的析构函数 179
6-5 多重继承的二义性 180
6-5-1 多重继承的二义性问题 181
6-5-2 多重继承的二义性问题的解决方法 182
6-6 虚基类 183
6-7 小结 186
思考与练习题 187
第7章 虚函数与多态性 192
7-1 多态性 192
7-1-1 多态的类型 192
7-1-2 多态的实现 193
7-1-3 基类指针和公有派生类对象 195
7-2 虚函数 197
7-3 纯虚函数与抽象类 199
7-4 小结 201
思考与练习题 202
第8章 运算符重载 207
8-1 运算符函数 207
8-2 运算符重载的应用 207
8-2-1 运算符重载为成员函数 207
8-2-2 运算符重载为友元函数 209
8-2-3 运算符重载的限制 210
8-3 典型运算符的重载 211
8-3-1 赋值运算符的重载 211
8-3-2 单目运算符的重载 212
8-3-3 I/O运算符的重载 214
8-4 小结 215
思考与练习题 216
第9章 模板 219
9-1 函数模板 219
9-1-1 函数模板的定义 220
9-1-2 函数模板的使用 220
9-2 类模板 222
9-2-1 类模板的定义 223
9-2-2 类模板的使用 223
9-3 小结 226
思考与练习题 227
第10章 C++流 230
10-1 C++流的概念 230
10-2 数据输出的格式控制 231
10-2-1 域宽控制 231
10-2-2 填充字符控制 232
10-2-3 数制控制 233
10-2-4 浮点数输出控制 234
10-2-5 对齐方式控制 234
10-3 文件流 235
10-3-1 文件的打开和关闭 236
10-3-2 文件的读写 236
10-4 小结 241
思考与练习题 241
参考文献 245
附录A ASCII表 246
附录B 常用库函数 247
附录C 2007年全国计算机等级考试二级C++语言考试大纲 249
附录D 全国计算机等级考试二级C++语言考试样题及参考答案 251