前言 1
第一章 含类的面向对象程序设计 13
面向对象程序设计 13
类 19
第二章 不含类的C++ 21
起始三步曲 21
函数的变化 26
严格的类型规则 31
全局变量的动态初始化 34
一些列表 36
抽象性 38
第三章 成员函数产生的抽象性 38
使用结构 39
使用具有接口函数的结构 40
使用具有成员函数的类 43
第四章 存取说明符产生的封装性 55
存取说明符 55
类成员可以具有任何存取级别 57
无限制的存取说明符 59
专有性并非意味着不可见性 60
友员类 61
第五章 合并和派生产生的层次性 67
合并 67
派生 68
串联 79
第六章 构造函数和析构函数产生的更好的抽象性 81
缺省构造函数 81
析构函数 84
内建类型 85
层次和串联 86
隐式的缺省构造函数和析构函数 90
串联的另一面 91
显式调用 92
控制流 93
调用时机 95
动态对象 98
第七章 new函数和delete函数产生的更好的抽象性 98
动态数组 99
混合性分配符 101
realloc() 102
内存溢出 103
第八章 引用 107
形式参数和实际参数 107
在C和C++中传递量值 108
在C++中传递引用 109
引用和指针 111
在C++中返回引用 113
重载:引用和量值 114
联编问题 115
第九章 由其他特殊成员函数产生的更好的抽象性 118
赋值运算符 119
拷贝构造函数 126
输出对象 134
总结 139
第十章 一个示例类 140
使用一个int型数 141
使用一个静态数组 144
使用一个动态数组 145
使用一个具有引用计数器的字符串 148
拷贝构造函数测试 152
总结表 154
定义一个模板 156
第十一章 模板产生的更好的层次性 156
使用模板来定义一个对象 159
小心对待模板展开 161
修改容器类的元素 162
第十二章 虚函数产生的多态性 165
C中的多态性 166
虚函数 169
C++中的多态性 171
有关虚函数的更多内容 174
第十三章 进一步了解多态性 180
抽象类 180
派生的选择 184
虚函数的选择 186
从构造函数和析构函数中调用虚函数 192
集中到一个数组中 193
陷阱 195
第十四章 实现一个面向对象的设计 198
实现表 199
例子 200
Is-A和Has-A 203
防御性的实现 204
第十五章 一个示例程序 205
String类 206
Rule、CwRule和HwRule类 207
Scanner类 210
使用这个程序 211
示例代码 213
第十六章 下一步要学习什么 223
const 224
inline 224
带参数的构造函数 224
成员初始化列表 225
有效的拷贝构造函数 225
特殊成员函数 225
附录一 C++运算符 227
附录二 使用量值返回时产生的一个问题 228
参考书目 231
词汇表 235