第1章 绪论 1
1.1 C++的发展史 1
1.2 C++的词法与规则 2
1.3结构化程序设计 17
1.4面向对象的程序设计 17
1.5 简单的C++程序 23
本章小结 27
第2章 类与对象 28
2.1 类的定义 28
2.1.1类的概念 28
2.1.2类的定义格式 29
2.1.3对象的定义 31
2.2类的封装 31
2.3成员函数 33
2.3.1成员函数的说明 33
2.3.2不同类型的成员函数 34
2.3.3成员函数的重载 38
2.4.1构造函数 39
2.4构造函数与析构函数 39
2.4.2析构函数 42
2.4.3调用构造函数与析构函数 44
2.5 类静态成员与友元 46
2.5.1静态数据成员 46
2.5.2静态成员函数 47
2.5.3友元 49
2.6.1 this指针 57
2.6 this指针与引用 57
2.6.2引用 61
本章小结 64
习题与思考题 65
第3章 继承 69
3.1基类与派生类 70
3.2单继承 76
3.3.2类型适应 82
3.3子类型化和类型适应 82
3.3.1子类型化 82
3.4多继承 83
3.4.1多继承的定义 83
3.4.2多继承的构造函数和析构函数 89
3.4.3二义性问题 91
3.5虚基类 94
本章小结 97
习题与思考题 98
4.1.1运算符重载的好处 103
第4章 运算符重载 103
4.1运算符重载概述 103
4.1.2运算符重载的规则 106
4.2运算符重载函数的两种形式 107
4.2.1友元运算符函数 108
4.2.2成员运算符函数 115
4.2.3成员运算符函数与友元运算符函数的比较 120
4.3.1 单目运算符“++”和“--”的重载 122
4.3 几个常用运算符的重载 122
4.3.2赋值运算符“=”的重载 127
4.3.3下标运算符“=”的重载 130
4.3.4运算符new和deiete的重载 132
4.4类型转换 135
4.4.1 系统预定义类型间的转换 135
4.4.2类类型与系统预定义类型间的转换 135
本章小结 141
习题与思考题 142
第5章 虚拟函数与多态性 145
5.1静态连接与动态连接 145
5.2虚拟函数 147
5.3纯虚函数与抽象类 151
本章小结 154
习题与思考题 154
6.1 C++为何建立自己的输入/输出系统 155
第6章 C++的输入和输出 155
6.2.1 C++的流 156
6.2.2流类库 156
6.2 C++的流库及其基本结构 156
6.3预定义类型的输入/输出 159
6.3.1无格式输入/输出 159
6.3.2格式化输入/输出 161
6.4用户自定义类型的输入/输出 172
6.4.1重载输出运算符“《” 172
6.4.2重载输入运算符“》” 173
6.5文件的输入/输出 175
6.5.1文件的打开与关闭 175
6.5.2文件的读/写 178
6.6程序举例 185
本章小结 188
习题与思考题 189
7.1模板简介 191
第7章 模板 191
7.2模板需求与基础 192
7.3作为基类的模板 193
7.4多态性 194
7.5仿真动态绑定 195
7.6 函数模板 196
本章小结 198
习题与思考题 199
第8章 Windows编程初步 201
8.1 Windows程序和DOS程序的不同点 201
8.2线程介绍 201
8.3理解消息 202
8.4 窗口的构件 203
8.5 父窗口和子窗口 203
8.6 创建一般的Windows程序 204
8.6.1标识符、结构与句柄 208
8.6.3注册窗口类型 210
8.6.2匈牙利表示法 210
8.6.4建立窗口 213
8.6.5显示窗口 214
8.6.6消息循环 214
8.6.7窗口消息处理函数 216
8.6.8处理消息 216
8.6.9 Windows程序设计的难点 218
8.7 图形基础 219
8.7.1画笔对象 220
8.7.2画刷对象 221
8.8鼠标消息基础 221
8.9综合示例 222
本章小结 225
习题与思考题 225
9.1 异常处理 226
9.1.1基本的异常处理形式 226
第9章 异常处理与名字空间 226
9.1.2异常具有特定类型 227
9.1.3 try块内的函数抛出异常 228
9.1.4函数内的局部try块 229
9.1.5程序何时执行catch 230
9.1.6对单个try块使用多个catch语句 230
9.1.7对异常使用省略符 232
9.1.8捕获单个try块的显式和通用异常 233
9.1.9异常的限制 234
9.1.10重新抛出异常 236
9.1.11 异常处理的应用 237
9.2 名字空间 238
9.2.1名字空间的定义 238
9.2.2 using namespace语句 240
9.2.3嵌套名字空间 241
9.2.4名字空间的别名 242
本章小结 243
习题与思考题 243