第1章 面向对象程序设计概述 1
1.1什么是面向对象程序设计 1
1.1.1新的程序设计范型 1
1.1.2面向对象程序设计基本概念 1
1.1.3面向对象程序设计的基本特征 4
1.2为什么要使用面向对象程序设计 7
1.2.1传统程序设计方法的局限性 7
1.2.2面向对象程序设计的主要优点 9
1.3面向对象程序设计的语言 10
1.3.1面向对象程序设计语言的发展概况 10
1.3.2几种典型的面向对象程序设计语言 12
本章小结 13
习题 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++程序的结构特点 16
2.3 C++对C的扩充 17
2.3.1注释与继续行 17
2.3.2 C++的输入输出流 18
2.3.3用const定义常变量 21
2.3.4函数原型声明 24
2.3.5函数重载 24
2.3.6函数模板 27
2.3.7带有缺省参数的函数 29
2.3.8变量的引用 31
2.3.9内联函数 39
2.3.10作用域标示符“?” 41
2.3.11字符串变量 42
2.3.12 new和delete 45
2.4 C++编写和实现 46
2.5关于C++上机实践 48
本章小结 48
习题 49
第3章 类和对象 53
3.1类 53
3.1.1从结构到类 53
3.1.2类定义的形式 55
3.1.3成员函数的调用 59
3.1.4保护成员 63
3.2类与对象 66
3.3构造函数和析构函数 68
3.3.1构造函数 68
3.3.2析构函数 73
3.3.3带参数的构造函数 76
3.3.4拷贝构造函数 79
3.3.5浅拷贝与深拷贝 81
3.4对象的生存期 84
本章小结 86
习题 87
第4章 类和对象深入讨论 91
4.1自引用指针this 91
4.2对象数组与对象指针 94
4.2.1对象数组 94
4.2.2对象指针 97
4.2.3指向类的成员的指针 99
4.3向函数传递对象 102
4.3.1使用对象作为函数参数 102
4.3.2使用对象指针作为函数参数 103
4.3.3使用对象引用作为函数参数 104
4.4静态成员 105
4.4.1静态成员的需要性 105
4.4.2静态成员的使用 106
4.4.3静态数据成员 109
4.4.4静态成员函数 112
4.5友元 116
4.5.1需要友元的原因 116
4.5.2友元的使用 119
4.6对象成员 121
4.7常类型 126
4.7.1常引用 126
4.7.2常对象 127
4.7.3常对象成员 128
4.8 C++程序的多文件组成 131
本章小结 133
习题 133
第5章 继承与派生 136
5.1继承与派生类的概念 136
5.1.1为什么要使用继承 136
5.1.2派生类的声明 137
5.1.3派生类生成过程 138
5.2派生类成员的访问属性 139
5.2.1公有继承 140
5.2.2私有继承 142
5.2.3保护继承 145
5.2.4总结 147
5.3派生类构造函数和析构函数 148
5.3.1派生类构造函数 148
5.3.2派生类析构函数 152
5.4多继承 154
5.4.1多继承声明 154
5.4.2多继承的构造函数和析构函数 155
5.4.3派生类重载基类成员和二义性问题 158
5.5虚基类 162
5.5.1虚基类的概念 162
5.5.2虚基类的初始化 164
5.5.3 虚基类应用举例 165
5.6子对象与父对象赋值兼容 167
5.7继承与组合 170
本章小结 172
习题 173
第6章 多态性与虚函数 178
6.1多态性概述 178
6.2子类型 180
6.2.1子类型及多态指针和多态引用 180
6.2.2多态程序 182
6.3静态束定、动态束定和虚函数 182
6.3.1静态束定 182
6.3.2动态束定与虚函数 184
6.3.3关于虚函数的进一步讨论 186
6.4纯虚函数与抽象类 191
6.4.1纯虚函数 191
6.4.2抽象类 193
本章小结 198
习题 199
第7章 运算符重载 200
7.1运算符重载概念 200
7.2重载运算符的一般原则 201
7.3几个主要运算符的重载 202
7.3.1加减运算符的重载 202
7.3.2增量运算符的重载 204
7.3.3转换运算符的重载 207
7.3.4赋值运算符的重载 209
7.3.5下标运算符的重载 211
7.3.6函数调用运算符的重载 212
本章小结 213
习题 213
第8章 模板 215
8.1模板的概念 215
8.2函数模板与模板函数 216
8.2.1函数模板的说明 217
8.2.2函数模板的使用 217
8.2.3用户定义的参数类型 220
8.2.4函数模板的异常处理 221
8.3类模板与模板类 223
8.4程序举例 228
本章小结 232
习题 233
第9章 C++的输入和输出 235
9.1 C++为何建立自己的输入输出系统 235
9.2 C++的流库及其基本结构 236
9.2.1 C++的流 236
9.2.2流类库 237
9.3预定义类型的输入输出 239
9.3.1无格式输入输出 240
9.3.2格式化输入输出 242
9.4用户自定义类型的输入输出 249
9.4.1重载输出运算符“<< 249
9.4.2重载输入运算符“>>” 251
9.5文件的输入输出 252
9.5.1文件的打开与关闭 252
9.5.2文件的读写 255
9.6程序举例 261
本章小结 263
习题 264
第10章 上机实验题 265
10.1实验一 熟悉实验环境 265
10.2实验二C++基础练习 265
10.3实验三 类与对象(一) 266
10.4实验四 类与对象(二) 267
10.5实验五 派生类与继承 267
10.6实验六 虚函数与多态性 268
10.7实验七 函数模板与类模板 269
10.8实验八 输入输出的格式控制 269
10.9实验九 文件的输入与输出 270
10.10实验十 综合练习 271
第11章 Visual C++6.0上机操作 272
11.1 Visual C++集成开发环境的组成 272
11.1.1 Visual C++用户界面 272
11.1.2工具栏 273
11.1.3菜单栏 277
11.2编辑、编译和运行C++程序 283
11.2.1建立、编译和运行一个简单C++程序 283
11.2.2一个项目包含头文件和C++程序 284
11.2.3一个工作区包含多个项目 285
11.3程序调试 287
11.3.1程序执行到中途暂停以便观察阶段性结果 287
11.3.2设置需观察的结果变量 288
11.3.3单步执行 288
11.3.4断点的使用 288
11.3.5停止调试 289
附录 290
附录A C++语言运算符的优先级和结合性 290
附录B ASCII码表 290
参考文献 291