目录 1
第一章 引论 1
1.1 面向对象的目标 1
1.2 面向对象语言的核心概念 2
1.2.1 数据封装 2
1.2.2 继承 3
1.2.3 多态性 4
1.2.4 类属 5
1.3 按对象方式思维 6
1.3.1 CRC设计方法 6
1.3.2 一个例子 7
1.4 面向对象的思想和方法 11
1.4.1 面向对象是一种认知方法学 11
1.4.2 面向对象与软件IC 12
1.4.3 面向对象方法与结构程序设计方法 14
1.4.4 对象是抽象数据类型的实现 15
1.5 面向对象的程序设计语言 16
第二章 C++:一个更好的C 18
2.1 C++的输入和输出 18
2.2 new和delete 19
2.3 注解 19
2.4 内联函数 20
2.5 const 20
2.6 函数原型 21
2.7 缺省参数 22
2.8 引用(reference) 23
2.9 枚举名和结构名都是类型名 28
2.10 强制类型转换 29
练习题 29
第三章 类 32
3.1 类与对象 32
3.1.1 类的例子 32
3.1.2 类的私有数据 36
3.1.3 C++的类 38
3.1.4 类与对象 40
3.2 构造函数和析构函数 40
3.2.1 简单的构造函数和析构函数 40
3.2.2 参数化的构造函数 43
3.2.3 重载构造函数与拷贝构造函数 45
3.2.4 类的初始化 47
3.3 关键字this 49
3.4 静态成员 51
3.4.1 静态数据 51
3.4.2 静态成员函数 52
3.5 友元 54
3.5.1 友元的说明和定义 54
3.5.2 友元函数与成员函数 55
3.5.3 将类声明为友元 55
3.5.4 友元的例子 56
3.6 类类型的常量 60
3.7 类对象作为成员 61
3.8 对象的数组 62
3.9 对象指针 65
3.10 传递对象到函数 66
3.11 类属单向链表的例子 67
练习题 71
第四章 运算符重载 73
4.1 重载运算符 73
4.1.1 运算符重载的语法形式 74
4.1.2 一元和二元运算符 76
4.1.3 用成员函数重载运算符 77
4.1.4 用友元重载运算符 80
4.1.5 重载++和-- 85
4.1.6 重载赋值运算符 87
4.1.7 重载运算符()和[] 87
4.2.1 new和delete的语法 91
4.2 自由存储 91
4.2.2 new和delete典型用法 93
4.2.3 指针悬挂问题 97
4.2.4 new和delete的重载 98
4.3 类型转换 103
4.3.1 通过构造函数进行类类型转换 104
4.3.2 类类型转换函数 105
练习题 111
第五章 派生类 113
5.1 派生类的概念 113
5.1.1 为什么使用继承 113
5.1.2 保护段 116
5.1.3 基类的访问描述符 117
5.1.4 基类的初始化 124
5.1.5 Point类——继承的一个例子 127
5.2.1 多继承的概念 131
5.2 多继承 131
5.2.2 虚基类 135
5.3 虚函数与多态性 139
5.3.1 派生类指针 140
5.3.2 虚函数 141
5.3.3 纯虚函数及抽象类 148
5.3.4 Figure模块——虚函数的例子 150
5.4.1 模块的观点 156
5.4 继承的意义 156
5.4.2 类型的观点 158
练习题 159
第六章 流库 162
6.1 C++为何有自己的I/O系统 162
6.2 C++流库的结构 162
6.3 输入和输出 165
6.3.1 istream 165
6.3.2 ostream 167
6.3.3 输出运算符<< 168
6.3.4 输入运算符>> 170
6.4 格式控制 171
6.4.1 用ios类成员函数格式化 172
6.4.2 用操纵函数控制格式 175
6.5 文件I/O 177
6.5.1 文件的打开和关闭 177
6.5.2 文件的读写 178
第七章 模板 181
7.1 类属的概念 181
7.1.1 无约束类属机制 181
7.1.2 约束类属机制 182
7.2 模板的概念 183
7.2.1 函数模板与模板函数 183
7.2.2 类模板与模板类 186
7.3 模板设计的例子与模板类 189
7.4 Borland C++3.0 Container类库的结构 196
7.4.1 Container实现的几个基本问题 197
7.4.2 Container类库实现的一些决策 199
7.4.3 Object Container类库的结构 202
7.4.4 BIDS模板库的结构 205
第八章 面向对象设计技术 209
8.1 面向对象设计的直观方法 209
8.2 数据库应用的例子 211
8.2.1 问题简述 211
8.2.2 基本结构 212
8.2.3 粗略设计 212
8.2.4 进一步设计 214
8.2.5 对象的操作 218
8.2.6 设计流程图 224
8.2.7 面向对象编程 227
附录 Borland C++集成环境使用简介 229
参考文献 236