第1章面向对象程序设计概述 1
1.1什么是面向对象程序设计 1
1.1.1新的程序设计范型 1
目 录 1
1.1.2面向对象程序设计的基本概念 2
1.2为什么需要面向对象程序设计 3
1.2.1软件开发对程序设计的需求 4
1.2.2面向对象程序设计的优点 5
1.3.2面向对象思想与计算机硬件体系结构 6
1.3.3面向对象技术的应用 6
1.3从面向对象程序设计到面向对象技术 6
1.3.1 OOP、OOA、OOD和OODB 6
1.4面向对象程序设计语言 7
1.4.1发展概况 7
1.4.2基于基本特性的分类 8
1.4.3几种典型的面向对象程序设计语言 9
习题1 10
2.1.1一个简单的C++示例程序 11
2.1 C++程序的结构特征和文件组成 11
第2章C++基础 11
2.1.2 C++程序的结构特征和文件组成 12
2.1.3 C++程序的编辑、编译和调试 13
2.2 C++对C的扩充 13
2.2.1注释与续行 13
2.2.2灵活的变量声明 13
2.2.3作用域标识符 14
2.2.4函数原型 14
2.2.5函数名重载 15
2.2.6缺省参数函数 16
2.2.7内联函数 16
2.2.8引用类型 16
2.2.9操作符new和delete 20
2.2.10 void型指针 22
2.2.11常量类型const 23
2.2.12显式类型转换 23
2.2.13无名联合 23
习题2 24
2.2.16结构名、联合名和枚举名 24
2.2.14函数返回值 24
2.2.15 main函数 24
第3章类与对象 26
3.1类与对象的定义 26
3.1.1类的定义 26
3.1.2对象的生成 28
3.1.3构造函数和析构函数 29
3.1.4类举例 31
3.2消息传递 33
3.2.1成员函数调用 33
3.2.2类的封装性测试 35
3.2.3 this指针 35
3.3其他基于类和对象的语言设施 36
3.3.1缺省构造函数 36
3.3.2拷贝构造函数 37
3.3.3初始化表 38
3.3.4静态成员 39
3.3.5友员 42
3.3.6结构和联合 43
3.3.7对象的存储类别 43
3.4对象成员 44
3.5对象数组 48
3.6程序举例 50
小结 53
习题3 54
4.1.1派生类的定义 56
4.1派生类 56
第4章派生类与继承 56
4.1.2派生类对其基类的继承 57
4.1.3派生类的构造函数和析构函数 59
4.1.4类树 63
4.2多继承 65
4.2.1多继承派生类及其定义 65
4.2.2类格 68
4.2.3虚基类 69
4.3访问声明 70
4.4程序举例 72
小结 74
习题4 75
第5章 多态 77
5.1多态的概念 77
5.2虚函数 78
5.2.1虚函数的引入 78
5.2.2虚函数的定义 79
5.2.3虚函数与重载函数的关系 80
5.2.4多继承中的虚函数 81
5.2.5纯虚函数与抽象类 84
5.26基于虚函数的多态性特色与程序设计技巧 84
5.3运算符重载 87
5.3.1概述 87
5.3.2用成员函数重载运算符 87
5.3.3用友员函数重载运算符 89
5.4.1重载“=” 90
5.4几个常用运算符的重载举例 90
5.4.2重载“?” 91
5.4.3重载“” 93
5.4.4重载new和delete 94
5.4.5综合举例 97
5.5类型转换 100
5.5.1类到其他类型的转换 100
5.5.2从基本类型到类类型的转换 101
小结 103
习题5 104
第6章模板 105
6.1模板的概念 105
6.2函数模板和模板函数 105
6.2.1函数模板定义与模板函数生成 105
6.2.2重载函数模板 106
6.3类模板和模板类 108
6.3.1类模板定义与模板类生成 108
6.3.2类模板的派生 110
习题6 112
小结 112
第7章基于流库的输入与输出 113
7.1流库及其结构 113
7.1.1流与流库 113
7.1.2 ios类层次结构 113
7.1.3 streambuf类层次结构 115
7.2流对象cin与cout的生成 116
7.2.1类istream和ostream的定义 116
7.2.2流对象cin和cout的生成 118
7.3一般的输入输出 120
7.3.1无格式输入输出 120
7.3.2格式化输入输出 122
7.4用户自定义类型的输入输出 130
7.4.1重载输入运算符“>>” 130
7.4.2重载输出运算符“<<” 132
7.4.3应用举例 133
7.5文件的输入输出 135
7.5.1文件的打开与关闭 135
7.5.2文件的读写 136
小结 139
习题7 139
第8章面向对象程序设计方法与实例 140
8.1一般方法与技巧 140
8.1.1定义类 140
8.1.2基于类类型的程序设计 141
8.1.3面向对象程序的特色与技巧 141
8.2.1异质链表的生成 142
8.2通用异质链表程序 142
8.2.2异质链表类的使用 149
8.3旅行路线规划程序 152
8.3.1功能与要求 152
8.3.2问题分析——确定应用类 152
8.3.3图搜索算法设计 152
8.3.4绘图模块设计 154
8.3.5程序清单 154
习题8 164
参考文献 165