第一部分 面向对象的方法学 3
第一章 什么是面向对象 3
§1.1 为什么要用面向对象 3
一、人机交互的用户界面与软件的重用 3
二、多媒体技术与软件的复杂性 5
§1.2 面向对象的由来及发展 7
一、面向对象的程序设计语言的形成 7
二、程序设计语言本身所经历的变革 8
三、面向对象的方法学的形成 11
§1.3 面向对象的基本概念、机制和原理 13
一、对象(object) 13
二、对象类 15
三、消息 17
四、继承性 17
五、多态性 19
六、动态编联 21
第二章 面向对象的软件开发 23
§2.1 面向对象的立体模型 23
一、对象的信息模型 24
二、对象的动态模型 29
三、对象的协作模型 32
§2.2 面向对象的软件开发过程 35
一、面向对象的分析(OOA) 35
二、面向对象的设计(OOD) 38
三、面向对象的实现(OOP) 39
参考文献1 40
第二部分 面向对象的程序设计语言C++ 44
第三章 一个更好的C 44
§3.1 Hello,World! 44
§3.2 标识符 46
一、作用域 47
二、类型 48
三、内存对象 49
四、const类型说明 49
五、volatile类型说明 51
§3.3 引用 51
§3.4 函数原形 57
§3.5 内置函数 57
§3.6 带缺省参数的函数 59
§3.7 函数名重载 60
§3.8 new和delete 62
第四章 类和对象 66
§4.1 类和对象的说明 66
§4.2 构造函数和析构函数 77
§4.3 类的自引用 84
§4.4 友元 86
二、类对象指针数组 90
§4.5 类和数组 90
一、类对象数组 90
三、类对象数据成员数组 91
四、类数据成员指针数组 91
五、类成员函数指针数组 92
§4.6 静态成员 93
一、静态的数据成员 93
二、静态的成员函数 94
§4.7 类的对象成员 95
§4.8 const与volatile成员函数 98
§4.9 其它 99
第五章 运算符函数及重载 103
§5.1 运算符的重载 103
一、运算符重载的语法 104
二、用成员函数重载运算符 105
三、用友元函数重载运算符 108
§5.2 重载++和-- 109
§5.3 重载= 111
§5.4 重载[] 113
§5.5 重载() 115
§5.6 重载type 116
§5.7 重载new和delete 118
第六章 继承性:派生的类 124
§6.1 单继承 124
一、派生类的构造函数和析构函数 128
二、基类的存取限定符 130
1.公有派生 130
2.私有派生 131
3.访问声明 134
§6.2 多重继承 136
一、虚基类 139
二、二义性 142
§6.3 赋值兼容规则 143
第七章 多态性:虚函数 153
§7.1 虚函数 153
一、函数覆盖 158
二、空的虚函数 160
三、抽象类 161
四、虚析构函数 163
§7.2 多态性的例子 165
§7.3 多态性的进一步讨论 176
第八章 模板 185
§8.1 函数模板 185
一、函数模板的概念 185
二、重载函数模板 189
§8.2 类模板 192
一、类模板的概念 193
二、类模板的友元 196
三、模板的例子 199
第三部分 类库 208
第九章 流库 208
§9.1 流库的类层次结构 208
一、streambuf类层次结构 209
1.类streambuf 210
2.类filebnf 213
二、ios类层次结构 215
1.类ios 215
2.类istream 218
3.类ostream 220
4.类iostream 222
5.类istream—withassign 222
7.类iostream—withassign 223
6.类ostream—withassign 223
8.类fstreambase 224
9.类ifstream 224
10.类ofstream 226
11.类fstream 227
12.类strstreambase 228
13.类istrstream 228
14.类ostrstream 229
15.类strstream 231
§9.2 重载操作符>>和<< 232
§9.3 操作函数 235
一、预定义的操作函数 235
二、用户定义的无参操作函数 237
三、用户定义的有参操作函数 240
§9.4 对类库的扩充 241
参考文献2 245