目 录
第1章 面向对象程序设计概述1
1.1 什么是面向对象程序设计1
1.1.1 一种新的程序设计范型1
1.1.2 面向对象程序设计的基本概念2
1.1.3 面向对象程序设计的基本特征4
1.2 为什么要使用面向对象程序设计8
1.2.1 传统程序设计方法的局限性8
1.2.2 面向对象程序设计方法的主要优点9
1.3 面向对象程序设计的语言11
1.3.1 面向对象程序设计语言的发展概况11
1.3.2 几种典型的面向对象程序设计语言12
习题13
第2章 C++概述14
2.1 C++的起源和特点14
2.1.1 C++的起源14
2.1.2 C++语言的特点15
2.2 C++源程序的构成15
2.2.1 简单的C++程序15
2.2.2 C++程序的结构特性17
2.2.3 C++程序的编辑、编译、连接和运行18
2.3 C++在非面向对象方面的扩充18
2.3.1 注释行19
2.3.2 C++的输入输出19
2.3.3 灵活的局部变量说明21
2.3.4 结构、联合和枚举名可直接作为类型名22
2.3.5 const修饰符22
2.3.6 函数原型25
2.3.7 内联函数28
2.3.8 带有默认参数的函数30
2.3.9 函数的重载31
2.3.10 作用域运算符“∷" 33
2.3.11 无名联合34
2.3.12 强制类型转换35
2.3.13 运算符new和delete35
2.3.14 引用38
习题44
第3章 类和对象48
3.1 类与对象的基本概念48
3.1.1 结构体与类48
3.1.2 成员函数的定义53
3.1.3 对象的定义及使用56
3.1.4 类的作用域和类成员的访问属性 59
3.2 构造函数与析构函数60
3.2.1 对象的初始化和构造函数60
3.2.2 用成员初始化列表对数据成员初始化65
3.2.3 构造函数的重载67
3.2.4 带默认参数的构造函数71
3.2.5 析构函数72
3.3 对象数组与对象指针75
3.3.1 对象数组75
3.3.2 对象指针78
3.3.3 this指针80
3.4 string类83
3.5 向函数传递对象85
3.5.1 使用对象作为函数参数85
3.5.2 使用对象指针作为函数参数86
3.5.3 使用对象引用作为函数参数87
3.6 对象的赋值和复制88
3.6.1 对象赋值语句 88
3.6.2 拷贝构造函数89
3.7 静态成员96
3.7.1 静态数据成员96
3.7.2 静态成员函数101
3.8 友元105
3.8.1 友元函数105
3.8.2 友元类110
3.9 类的组合113
3.10 常类型117
3.10.1 常引用117
3.10.2 常对象118
3.10.3 常对象成员120
习题122
第4章 派生类与继承136
4.1 派生类的概念136
4.1.1 为什么要使用继承136
4.1.2 派生类的声明138
4.1.3 派生类的构成139
4.1.4 基类成员在派生类中的访问属性140
4.1.5 派生类对基类成员的访问规则141
4.2 派生类的构造函数和析构函数149
4.2.1 派生类构造函数和析构函数的执行顺序150
4.2.2 派生类构造函数和析构函数的构造规则151
4.3 调整基类成员在派生类中的访问属性的其他方法158
4.3.1 同名成员158
4.3.2 访问声明160
4.4 多重继承164
4.4.1 多重继承派生类的声明164
4.4.2 多重继承派生类的构造函数与析构函数166
4.4.3 虚基类170
4.5 基类与派生类对象之间的赋值兼容关系179
4.6 应用举例182
习题188
第5章 多态性198
5.1 编译时的多态性与运行时的多态性198
5.2 运算符重载199
5.2.1 在类外定义的运算符重载函数199
5.2.2 友元运算符重载函数203
5.2.3 成员运算符重载函数209
5.2.4 成员运算符重载函数与友元运算符重载函数的比较214
5.2.5 "++”和“--”的重载216
5.2.6 赋值运算符“=”的重载221
5.2.7 下标运算符“\”的重载225
5.3 类型转换227
5.3.1 系统预定义类型间的转换227
5.3.2 类类型与系统预定义类型间的转换228
5.4 虚函数235
5.4.1 虚函数的引入235
5.4.2 虚函数的定义239
5.4.3 纯虚函数和抽象类249
5.5 应用举例250
习题255
第6章 模板与异常处理260
6.1 模板的概念260
6.2 函数模板与模板函数260
6.3 类模板与模板类266
6.4 异常处理273
6.4.1 异常处理概述273
6.4.2 异常处理的方法274
6.5 应用举例278
习题282
第7章 C++的流类库与输入输出286
7.1 C++为何建立自己的输入输出系统286
7.2 C++流的概述287
7.2.1 C++的输入输出流287
7.2.2 预定义的流对象289
7.2.3 输入输出流的成员函数289
7.3 预定义类型的输入输出292
7.3.1 插入运算符与提取运算符292
7.3.2 输入输出的格式控制294
7.4 用户自定义类型的输入输出302
7.4.1 重载插入运算符302
7.4.2 重载提取运算符304
7.5 文件的输入输出305
7.5.1 文件的打开与关闭306
7.5.2 文件的读写309
7.6 命名空间和头文件命名规则317
7.6.1 命名空间317
7. 6.2 头文件命名规则319
7.7 应用举例320
习题323
第8章 面向对象程序设计方法与实例326
8.1 面向对象程序设计的一般方法和技巧326
8.1.1 问题分析和功能定义327
8.1.2 对象(类)设计及实现327
8.1.3 核心控制设计329
8.1.4 编码与测试329
8.1.5 进化329
8.2 设计实例: 模拟网上购书的结账功能330
8.2.1 问题分析与功能定义330
8.2.2 对象(类)设计330
8.2.3 核心控制设计333
8.2.4 编码与测试333
习题339
参考文献340
