第1部分 结构化程序设计 3
第1章 C++语言概述 3
1.1 C++的产生 3
1.2 计算机上运行程序的方法 4
1.3 程序设计的基本概念 5
1.4 C++程序的基本结构 7
1.5 C++程序的基本要素 8
1.5.1 字符集 8
1.5.2 标识符 9
1.5.3 关键字 9
1.5.4 注释 9
1.5.5 简单的输入与输出 10
1.6 计算机的工作原理 12
第2章 基本数据类型和表达式 14
2.1 基本数据类型 14
2.1.1 整型 14
2.1.2 实型 18
2.1.3 字符型 19
2.1.4 布尔型 20
2.2 常量和变量 20
2.3 变量的定义和初始化 21
2.3.1 变量的定义 21
2.3.2 变量的初始化 22
2.4 运算符与表达式 23
2.4.1 算术运算符及其表达式 23
2.4.2 赋值运算符及其表达式 24
2.4.3 关系运算符及其表达式 25
2.4.4 逻辑运算符及其表达式 26
2.4.5 自增和自减运算符及其表达式 27
2.4.6 位运算 29
2.4.7 其他运算符 31
2.5 表达式中运算符的运算顺序 32
2.6 类型转换 33
2.7 语句 35
第3章 控制结构 36
3.1 顺序结构 36
3.2 选择结构 37
3.2.1 if语句 37
3.2.2 switch语句 44
3.3 循环结构 48
3.3.1 while语句 49
3.3.2 do-while语句 50
3.3.3 for语句 52
3.3.4 break和continue语句 56
3.3.5 双重循环 59
3.3.6 循环和选择结构的嵌套 62
第4章 数组 69
4.1 数组的基本概念 69
4.2 一维数组 70
4.2.1 一维数组的声明和初始化 70
4.2.2 一维数组的使用 72
4.2.3 一维数组的程序实例 74
4.3 二维数组 76
4.3.1 二维数组的声明和初始化 77
4.3.2 二维数组的使用 78
4.3.3 二维数组的程序实例 78
4.4 字符数组 82
4.4.1 字符数组的声明和初始化 82
4.4.2 字符串的输入与输出 83
4.4.3 字符串处理函数 85
第5章 函数 94
5.1 函数的定义和使用 94
5.1.1 函数的定义 94
5.1.2 函数的返回值 95
5.1.3 函数原型 97
5.1.4 函数的调用 98
5.2 函数的参数传递 100
5.2.1 传递参数值 100
5.2.2 引用作为函数参数 101
5.2.3 传递地址值 104
5.3 函数的嵌套调用和递归调用 104
5.3.1 函数的嵌套调用 104
5.3.2 函数的递归调用 107
5.4 数组与函数 111
5.5 函数的其他用法 114
5.5.1 内联函数 114
5.5.2 带默认参数值的函数 115
5.5.3 函数重载 116
5.5.4 函数模板 119
5.6 变量的作用域和存储类型 123
5.6.1 全局变量和局部变量 123
5.6.2 静态变量和动态变量 127
第6章 指针 131
6.1 指针的基本概念 131
6.2 指针的声明与初始化 131
6.2.1 指针的声明 131
6.2.2 指针的初始化 132
6.3 指针运算 133
6.3.1 取地址运算与取值运算 133
6.3.2 指针的算术运算 134
6.3.3 指针的关系运算 135
6.3.4 指针的相减和赋值运算 136
6.4 指针与数组 137
6.4.1 指针与一维数组 137
6.4.2 指针和二维数组 143
6.4.3 指针数组 145
6.5 动态内存分配 147
6.5.1 new运算符 147
6.5.2 delete运算符 149
6.6 指针与函数 150
6.6.1 指针作为函数参数 151
6.6.2 函数返回指针 153
6.6.3 指向函数的指针 154
第7章 结构体与共用体 159
7.1 枚举类型 159
7.1.1 枚举类型的定义和声明 159
7.1.2 枚举类型变量的使用 161
7.2 结构体 163
7.2.1 结构体类型的定义 163
7.2.2 结构体类型变量的定义方法 164
7.2.3 结构体变量的使用 166
7.2.4 结构体变量的初始化 167
7.2.5 数组和结构体 167
7.2.6 函数和结构体 171
7.3 共用体 175
7.3.1 共用体的定义 176
7.3.2 共用体变量的定义 176
7.3.3 共用体变量的使用 177
第2部分 面向对象程序设计 183
第8章 类和对象 183
8.1 面向对象程序设计方法 183
8.1.1 面向对象的基本概念 183
8.1.2 面向对象的基本特征 184
8.2 类与对象的声明和定义 187
8.2.1 类的声明 187
8.2.2 对象的定义 187
8.3 类的成员 190
8.3.1 数据成员 190
8.3.2 函数成员 190
8.4 对象的存储和访问 191
8.4.1 对象的存储 191
8.4.2 对象的访问 193
8.4.3 指向对象的指针 196
8.4.4 this指针 198
8.5 构造函数 199
8.5.1 构造函数的定义 199
8.5.2 默认构造函数 201
8.5.3 构造函数的初始化表 202
8.5.4 复制构造函数 202
8.6 析构函数 206
第9章 运算符重载 210
9.1 用函数实现运算 210
9.2 运算符重载函数 214
9.2.1 运算符重载为成员函数 214
9.2.2 运算符重载为非成员函数(友元函数) 216
9.3 典型运算符的重载 219
9.3.1 重载求相反数运算符 219
9.3.2 重载“++”运算符 221
9.3.3 重载赋值运算符 224
9.3.4 重载下标运算符 227
第10章 继承和派生 230
10.1 继承的基本概念 230
10.2 派生类 233
10.2.1 派生类的声明 233
10.2.2 派生类的构成 234
10.2.3 派生类的继承方式和访问属性 234
10.3 派生类的构造函数和析构函数 241
10.3.1 派生类的构造函数 241
10.3.2 派生类的析构函数 242
10.4 多继承与虚基类 246
10.4.1 多继承 246
10.4.2 多继承中的二义性问题 250
10.4.3 虚基类 252
第11章 多态性 258
11.1 多态性的概念 258
11.2 派生类对象替代基类对象 260
11.3 虚函数 262
11.3.1 虚函数的定义 262
11.3.2 虚函数的使用限制 265
11.3.3 虚析构函数 270
11.4 抽象类 272
第12章 输入/输出流 275
12.1 输入/输出流的基本概念 275
12.1.1 流类库的头文件 275
12.1.2 输入/输出流类库的体系 276
12.1.3 输入/输出流实例 277
12.1.4 重载“?”和“?”运算符 283
12.2 格式化输入/输出 285
12.2.1 用ios类成员函数进行格式化 285
12.2.2 用操作符进行格式化控制 287
12.3 文件流 288
12.3.1 文件流类及文件流对象 290
12.3.2 文件的打开和关闭 291
12.3.3 文本文件的读与写 293
12.3.4 二进制文件的读与写 296
12.3.5 文件的随机访问 297
第3部分 程序设计算法基础 303
第13章 简单数据结构及算法 303
13.1 查找 303
13.1.1 查找的基本概念 303
13.1.2 顺序查找 304
13.1.3 折半查找 304
13.2 排序 306
13.2.1 冒泡排序 306
13.2.2 选择排序 309
13.2.3 直接插入排序 310
13.3 线性表概述 312
13.4 链表的实现 314
13.4.1 结点类的实现 314
13.4.2 单链表类的实现 316
13.4.3 链表的应用实例 327
参考文献 331