1.1程序 1
第1章 C++语言概述 1
1.2程序设计方法 2
1.2.1结构化程序设计 2
1.2.2面向对象的程序设计 3
1.3 C++语言的产生与发展 4
1.4 C++程序开发过程 5
1.5简单的C++程序 6
习题1 12
第2章 C++基础知识 13
2.1字符集和保留字 13
2.2.1变量和常量 14
2.2基本数据类型 14
2.2.2整型数据 16
2.2.3字符型数据 18
2.2.4实型数据 20
2.2.5枚举型数据 21
2.2.6字符串常量 22
2.3操作符和表达式 23
2.3.1概述 23
2.3.2常用操作符和表达式 25
2.3.3表达式的副作用 33
习题2 34
3.1 C++的语句 35
第3章 语句和流程控制 35
3.2流程控制与程序结构 37
3.3分支选择结构 39
3.3.1 if-else语句 39
3.3.2 if语句的嵌套 41
3.3.3 if多分支结构 43
3.3.4 switch多分支结构 44
3.4循环结构 46
3.4.1 while当型循环 46
3.4.2 do-while直到型循环 47
3.4.3 for循环 49
3.5.1 break语句 51
3.5转向控制语句 51
3.5.2 continue语句 52
3.6综合应用例子 53
习题3 55
第4章 函数和作用域 56
4.1 函数概述 56
4.2函数的定义和调用 57
4.2.1函数的定义 57
4.2.2函数的调用 59
4.3函数原型与头文件 61
4.4函数的值传递 64
4.5内联函数 66
4.6函数的重载 67
4.7.2变量的作用域和生存期 69
4.7函数和变量的作用域 69
4.7.1函数的作用域 69
4.8编译预处理 71
4.8.1文件包含指令#include 72
4.8.2宏定义指令#define 72
4.8.3条件编译指令 74
习题4 75
第5章 数组 76
5.1数组的基本特征 76
5.2一维数组 76
5.2.1一维数组的定义 76
5.2.2一维数组的使用 77
5.2.3一维数组的初始化 78
5.3一维数组应用举例 80
5.4多维数组 83
5.4.1二维数组的定义和初始化 83
5.4.2二维数组的使用 84
5.5二维数组应用举例 86
5.6字符数组与字符串 89
5.6.1字符数组与字符串 89
5.6.2字符串的主要操作 90
习题5 92
第6章 指针和引用 94
6.1指针的基本概念 94
6.2.1一维数组的指针表示 97
6.2指针与数组 97
6.2.2多维数组元素的指针表示 99
6.2.3字符指针与字符串 100
6.2.4指针数组与NULL指针 102
6.2.5命令行参数 104
6.3指针与函数 105
6.3.1指针参数 105
6.3.2返回指针的函数和void指针 107
6.3.3函数指针 108
6.4引用 111
6.4.1 引用类型变量的定义和使用 111
6.4.2引用和函数 113
6.5.1非数组动态空间 115
6.5动态空间管理 115
6.5.2数组动态空间 116
习题6 116
第7章 面向对象程序设计基础 118
7.1 C程序设计中的问题 118
7.2解决方案:面向对象的程序设计 119
7.3面向对象的关键概念 121
7.3.1对象 121
7.3.2类 122
7.3.3消息和方法 122
7.3.4封装性 122
7.3.5继承 123
7.3.7多态性 124
7.3.6组合 124
7.4面向对象分析和设计步骤 125
第8章 类 127
8.1类的定义 127
8.2类与对象 129
8.3类的使用 130
8.4类的成员 130
8.5访问权限 132
8.6名字解析 136
8.7作用域运算符 136
8.8 this指针 138
8.9 const关键字 139
8.10类的作用域 141
8.11 C++程序结构 143
习题8 144
第9章 构造函数和析构函数 146
9.1构造函数 146
9.1.1默认构造函数 146
9.1.2带参数的构造函数 148
9.1.3重载构造函数 149
9.2析构函数 157
9.3成员初始化列表 159
9.4对象生命周期 163
9.5拷贝构造函数 165
9.6对象数组 168
习题9 170
第10章 静态成员、友元和操作符重载 172
10.1静态成员 172
10.1.1静态数据成员 172
10.1.2静态成员函数 175
10.1.3静态成员函数和非静态成员函数的区别 176
10.2友元 177
10.2.1友元函数 177
10.2.2友元成员 179
10.2.3友元类 183
10.3运算符重载 183
10.3.1运算符重载的规则和特点 184
10.3.2如何重载运算符 184
10.3.3类的成员函数重载运算符 187
10.3.4赋值运算符 192
10.3.5 “++”和“--” 195
10.3.6转换运算符 197
习题10 198
第11章 继承 200
11.1继承的概念 200
11.2继承的工作方式 201
11.2.1公有继承 202
11.2.2保护继承 205
11.3再谈访问权限 206
11.4子类成员对基类成员的遮盖 207
11.5.1继承 211
11.5继承与组合 211
11.5.2组合 212
11.6综合实例分析 213
习题11 218
第12章 虚拟函数与多态性 220
12.1指向基类的指针及引用 220
12.2虚拟函数与多态性 222
12.2.1虚拟函数 222
12.2.2多态性 224
12.3虚函数举例 224
12.4纯虚函数和抽象类 228
12.5纯虚函数举例 230
12.6向上转型与虚函数 235
12.7虚析构函数 237
12.8综合实例 238
习题12 242
第13章 C++I/O流介绍 244
13.1 C++流的概念 244
13.1.1 C++流体系结构 244
13.1.2预定义流对象 245
13.1.3预定义的提取操作符“>>”和插入操作符“<<” 246
13.1.4重载提取操作符和插入操作符 247
13.2格式化输入输出 248
13.2.1格式化输入输出的数制状态控制 250
13.2.2输入输出的宽度控制 250
13.2.5小数点处理方式 251
13.2.3输入输出的精度控制 251
13.2.4浮点数输出方式控制 251
13.2.6非负数的符号表示方式 252
13.2.7对齐方式控制 253
13.2.8填充字符 254
13.2.9插入换行符 254
13.3文件操作 255
13.3.1文件概念 255
13.3.2文件流对象的建立 257
13.3.3文件流状态的判定 259
13.3.4文本文件的访问操作 259
13.3.5二进制文件的访问操作 265
13.4字符串流 268
习题13 271
第14章 模板 273
14.1模板函数 273
14.2模板函数参数依赖于元素类型 274
14.3多个元素类型的模板函数 275
14.4模板类 276
14.5各种模板类元素类型 277
14.6标准模板库——STL 278
14.6.1容器 278
14.6.2迭代量 278
14.6.3算法 278
习题14 280