第1章 C++语言与面向对象概述 1
1.1 计算机语言的发展概述 1
1.1.1 计算机程序设计语言的发展 1
1.1.2 程序设计方法的发展 2
1.1.3 C++的特点 4
1.1.4 程序的演示 5
1.2 C++程序的基本组成 6
1.2.1 C++的基本词法和规范 6
1.2.2 简单的C++程序 7
1.2.3 C++程序结构说明 8
1.3 面向对象概述 9
1.3.1 面向对象的基本概念 9
1.3.2 面向对象的基本特征 10
1.3.3 面向对象的软件开发 12
1.4 C++程序的开发 13
1.4.1 C++程序的开发 13
1.4.2 Visual C++6.0集成开发环境简介 13
1.4.3 开发环境的初步实践 15
1.5 本章小结 19
1.6 习题一 19
第2章 基本数据类型及表达式 22
2.1 基本数据类型 23
2.1.1 整型 23
2.1.2 字符型 24
2.1.3 浮点型 26
2.1.4 布尔型 28
2.1.5 类型修饰符 29
2.2 常量与变量 30
2.2.1 常量 30
2.2.2 变量 33
2.3 运算符与表达式 35
2.3.1 算术运算符和算术表达式 35
2.3.2 关系运算符和关系表达式 37
2.3.3 逻辑运算符和逻辑表达式 38
2.3.4 位运算符 39
2.3.5 赋值运算符和赋值表达式 42
2.3.6 条件运算符 43
2.3.7 逗号运算符 43
2.3.8 sizeof运算符 43
2.3.9 运算符的优先级与结合性 44
2.4 类型转换 45
2.4.1 自动类型转换 45
2.4.2 强制类型转换 46
2.5 实例分析 47
2.6 本章小结 48
2.7 习题二 49
第3章 C++与结构化程序设计 52
3.1 C++基本语句 52
3.2 结构化程序设计方法 53
3.2.1 模块化设计 53
3.2.2 结构化编码 54
3.2.3 结构化程序设计方法的特点 54
3.3 顺序结构程序设计 55
3.4 选择结构程序设计 55
3.4.1 if语句 55
3.4.2 if语句的嵌套 60
3.4.3 switch开关语句 60
3.5 循环结构的实现 62
3.5.1 while语句 62
3.5.2 do-while语句 63
3.5.3 for语句 64
3.5.4 循环的嵌套 67
3.5.5 循环与选择的相互嵌套 68
3.6 转向控制语句 69
3.6.1 break语句 69
3.6.2 continue语句 71
3.6.3 goto语句 72
3.7 实例分析 73
3.8 本章小结 79
3.9 习题三 80
第4章 数组 85
4.1 一维数组 85
4.1.1 一维数组的定义 85
4.1.2 一维数组的初始化 86
4.1.3 对一维数组元素的访问 87
4.2 多维数组 90
4.2.1 二维数组的定义 91
4.2.2 二维数组的初始化 91
4.2.3 对二维数组元素的访问 92
4.3 字符数组 95
4.3.1 字符数组的定义 95
4.3.2 字符数组的初始化 95
4.3.3 字符数组的引用 96
4.3.4 字符串 97
4.3.5 字符串处理函数 100
4.4 实例分析 103
4.5 本章小结 111
4.6 习题四 111
第5章 函数与预处理 115
5.1 函数的定义 115
5.1.1 函数的定义格式 115
5.1.2 函数的原型声明 116
5.2 函数的调用和参数 117
5.2.1 函数的调用 117
5.2.2 函数的参数 118
5.3 函数的嵌套和递归调用 122
5.3.1 函数的嵌套调用 122
5.3.2 函数的递归调用 123
5.4 内联函数和重载函数 125
5.4.1 内联函数 125
5.4.2 函数的重载 126
5.5 作用域与生命期 128
5.5.1 作用域 128
5.5.2 全局变量和局部变量 130
5.5.3 生命期 132
5.6 编译预处理 135
5.6.1 宏定义(#define) 136
5.6.2 文件包含 138
5.6.3 条件编译 140
5.7 实例分析 141
5.8 本章小结 143
5.9 习题五 144
第6章 指针 148
6.1 地址和指针 148
6.2 变量的指针和指向变量的指针变量 149
6.2.1 指针变量的定义 149
6.2.2 指针变量的引用 151
6.2.3 指针变量的运算 152
6.2.4 指针变量作为函数参数 154
6.3 指针与数组 155
6.3.1 指向数组元素的指针 155
6.3.2 通过指针引用数组元素 156
6.3.3 数组名作函数参数 159
6.4 指针与字符串 162
6.4.1 字符串的表示形式 162
6.4.2 字符串指针作函数参数 163
6.5 指向函数的指针 164
6.5.1 用函数指针变量调用函数 164
6.5.2 用指向函数的指针作函数参数 165
6.6 指针数组和指向指针的指针 166
6.6.1 指针数组的概念 166
6.6.2 指向指针的指针 167
6.6.3 指针数组作main函数的形参 169
6.7 实例分析 170
6.8 本章小结 173
6.9 习题六 173
第7章 构造数据类型 177
7.1 结构体 177
7.1.1 结构体类型的定义 178
7.1.2 结构体变量的定义与初始化 179
7.1.3 结构体成员的访问 182
7.1.4 结构与函数 187
7.1.5 结构与链表 193
7.2 联合体 198
7.2.1 联合体的定义 198
7.2.2 访问联合体的成员 199
7.3 枚举类型 201
7.3.1 枚举类型及枚举变量的定义 201
7.3.2 枚举元素的引用 202
7.4 typedef声明 203
7.5 实例分析 203
7.6 本章小结 206
7.7 习题七 207
第8章 类与对象 212
8.1 类和对象的定义 212
8.1.1 类的定义 212
8.1.2 类成员的访问控制 214
8.1.3 对象的定义 215
8.1.4 对象成员的访问方式 215
8.2 构造函数 216
8.2.1 构造函数的定义和分类 216
8.2.2 默认构造函数 218
8.2.3 复制构造函数 219
8.2.4 类型转换构造函数 221
8.3 析构函数 222
8.4 内联和重载 223
8.4.1 内联成员函数 223
8.4.2 重载成员函数 224
8.5 静态成员 226
8.5.1 静态数据成员 226
8.5.2 静态成员函数 228
8.6 友元 230
8.6.1 友元函数 230
8.6.2 友元类 231
8.7 嵌套类和子对象 233
8.7.1 嵌套类 233
8.7.2 前向引用 234
8.7.3 子对象 235
8.8 对象指针和对象数组 237
8.8.1 指向对象的指针 237
8.8.2 this指针 238
8.8.3 对象数组 240
8.9 常对象和常成员 241
8.9.1 常对象 241
8.9.2 常成员 243
8.9.3 常类型的函数参数传递 245
8.10 实例分析 247
8.11 本章小结 250
8.12 习题八 250
第9章 继承与派生 255
9.1 基类与派生类 256
9.1.1 基本术语 256
9.1.2 派生类的定义格式 256
9.1.3 派生类的继承方式 258
9.2 单继承 262
9.2.1 基类成员的访问权限 262
9.2.2 构造函数和析构函数 265
9.2.3 作用域运算符“∷” 270
9.2.4 子类型和类型适应 270
9.3 多继承 273
9.3.1 多继承的概念 273
9.3.2 多继承的二义性 277
9.3.3 虚基类的定义 279
9.3.4 虚基类及其派生类构造函数 281
9.3.5 虚基类的应用 283
9.4 实例分析 285
9.5 本章小结 289
9.6 习题九 290
第10章 多态性 294
10.1 静态联编与动态联编 294
10.1.1 静态联编 294
10.1.2 动态联编 297
10.2 运算符重载 299
10.2.1 运算符重载的规则 300
10.2.2 运算符重载为成员函数 301
10.2.3 运算符重载为友元函数 304
10.3 虚函数 307
10.3.1 虚函数的定义和使用 307
10.3.2 虚析构函数 309
10.4 纯虚函数与抽象类 309
10.4.1 纯虚函数 309
10.4.2 抽象类 310
10.4.3 动态联编的实现机理 311
10.5 实例分析 312
10.5.1 问题提出 312
10.5.2 类设计 312
10.5.3 程序代码设计 313
10.6 本章小结 317
10.7 习题十 318
第11章 I/O流与文件 322
11.1 I/O流的概念及流类库结构 322
11.1.1 C++流类的体系结构 322
11.1.2 预定义流对象 325
11.1.3 标准I/O流类 326
11.1.4 提取运算符“〉〉”和插入运算符“〈〈” 328
11.2 用ios类的成员函数实现格式化输入/输出 328
11.2.1 ios类的流成员函数 328
11.2.2 左右对齐 331
11.2.3 设置填充字符 332
11.2.4 设置及清除格式标志 333
11.2.5 流错误状态 334
11.3 用操作符实现格式化输入/输出 335
11.3.1 整数的格式化输入/输出 335
11.3.2 浮点数精度和域宽的使用 336
11.4 文件的操作 337
11.4.1 文件流 337
11.4.2 文件的打开方式 338
11.4.3 文本文件与二进制文件的读/写 340
11.4.4 顺序访问文件 343
11.4.5 随机访问文件 344
11.5 实例分析 346
11.6 本章小结 348
11.7 习题十一 349
第12章 模板与异常处理 355
12.1 模板 355
12.1.1 函数模板 355
12.1.2 类模板 360
12.2 异常处理的基本思想 363
12.3 C++异常处理的实现 364
12.3.1 异常处理的语法 364
12.3.2 异常接口声明 367
12.4 异常处理中的构造与析构 367
12.5 标准程序库异常处理 370
12.6 实例分析 371
12.7 本章小结 374
12.8 习题十二 374
附录 C++语言编程规范 379
一、应用范围 379
二、设计模块和函数 379
三、命名约定 381
四、使用常量和枚举值 382
五、变量 383
六、代码的格式化 384
七、代码的注释 385
八、控制代码流 387
参考文献 388