第1章 面向对象技术概述 1
1.1 面向对象技术概念 1
1.2 结构化程序设计与面向对象程序设计的区别 2
1.3 面向对象程序设计的作用 3
1.3.1 复杂性的维护 3
1.3.2 生产率的提高 4
1.3.3 设计大型应用程序 5
1.4 面向对象程序设计语言 6
1.4.1 程序设计语言发展概况 6
1.4.2 面向对象程序设计语言简介 7
练习题 8
第2章 面向对象技术的基本特征 9
2.1 对象(Object) 9
2.2 类(Class) 10
2.3 封装(Encapsulation) 11
2.4 继承(Inheritance) 12
2.5 消息(Message) 13
2.6 结构与连接(Structure & Connection) 14
2.6.1 一般—特殊结构 14
2.6.2 整体—部分结构 15
2.6.3 实例连接 15
2.6.4 消息连接 15
2.7 多态性(Polymorphism) 16
练习题 16
第3章 C++基础 17
3.1 C语言与C++语言的关系 17
3.2 数据和表达式 19
3.2.1 基本数据类型 19
3.2.2 关键字 21
3.2.3 变量 21
3.2.4 常量 23
3.2.5 表达式 24
3.2.6 运算符的使用 26
3.3 基本语句 29
3.3.1 选择语句:if语句 29
3.3.2 选择语句:if/else语句 29
3.3.3 switch语句 30
3.3.4 循环语句:while和do/while语句 32
3.3.5 循环语句:for语句 33
3.3.6 转向语句:break、continue、return、goto语句 35
3.4 函数 36
3.4.1 函数的声明、定义与调用 36
3.4.2 参数缺省函数 38
3.4.3 函数名重载 38
3.4.4 递归函数 40
3.4.5 内联函数 41
3.5 数组 43
3.5.1 数组的定义 43
3.5.2 数组的初始化 44
3.5.3 数组的使用 47
3.6 指针和字符串 50
3.6.1 定义指针变量 50
3.6.2 指针的应用 50
3.6.3 指针与数组 51
3.6.4 const型指针 52
3.6.5 内存的分配:new和delete 55
3.7 引用 56
3.7.1 引用的概念 56
3.7.2 不能被定义引用的情况 57
3.7.3 函数参数中的引用传递 58
3.7.4 函数的引用返回值 60
3.7.5 引用与指针的区别 61
3.8 本章小结 61
练习题 62
第4章 类与对象 67
4.1 类的构成 67
4.2 成员函数的定义 68
4.3 对象的定义和使用 71
4.4 构造函数和析构函数 73
4.4.1 一般形式的构造函数 74
4.4.2 参数化的构造函数 76
4.4.3 缺省参数的构造函数 78
4.4.4 拷贝构造函数和重载赋值运算符 81
4.4.5 构造函数个数 83
4.4.6 析构函数 85
4.5 友员成员 85
4.6 静态成员 93
4.6.1 静态数据成员 93
4.6.2 静态函数成员 95
4.7 对象成员 97
4.8 常数成员 103
4.9 本章小结 105
练习题 105
第5章 类的继承与派生 111
5.1 派生类的概念 111
5.2 派生类的定义 112
5.2.1 派生类的构造函数 115
5.2.2 派生类对基类成员的访问规则 118
5.3 多重继承 123
5.3.1 多重继承的声明 123
5.3.2 虚基类 131
5.4 本章小结 136
练习题 136
第6章 虚函数与多态性 138
6.1 多态性的概念 138
6.2 虚函数 141
6.3 虚函数的限制 148
6.4 多态性的有效范围 148
6.5 纯虚函数和抽象类 152
6.6 本章小结 156
练习题 156
第7章 模板 158
7.1 模板的概念 158
7.2 函数模板与模板函数 158
7.3 类模板与模板类 162
7.4 本章小结 173
练习题 173
第8章 运算符重载 174
8.1 可重载的运算符 174
8.2 用成员函数重载运算符 176
8.3 用友员函数重载运算符 182
8.4 几个常用运算符重载 185
8.4.1 赋值运算符“=” 185
8.4.2 下标运算符“[]” 187
8.4.3 函数调用运算符“()” 189
8.5 本章小结 196
练习题 196
第9章 输入/输出流库 197
9.1 基本概念 197
9.2 C++ I/O流库 198
9.2.1 streambuf类 198
9.2.2 ios类 198
9.3 一般输入/输出 200
9.3.1 C++中传送数据的方法 200
9.3.2 输入/输出类的定义 200
9.3.3 输入/输出运算符的使用 203
9.4 格式化输入/输出 206
9.4.1 用ios类成员函数进行格式化 206
9.4.2 用操作函数进行格式化控制 212
9.4.3 用户自定义控制符函数 213
9.5 用户自定义类型的输入/输出 215
9.5.1 重载输出运算符“ ” 215
9.5.2 重载输入运算符“ ” 216
9.6 文件的输入/输出 219
9.6.1 概述 219
9.6.2 文件打开与关闭 220
9.6.3 文本文件的读写操作 222
9.6.4 随机存取文件 224
9.7 本章小结 227
练习题 228
第10章 异常处理 232
10.1 异常的概念 232
10.2 异常的基本思想 233
10.3 异常的实现 234
10.4 异常处理的规则 237
10.5 多路捕获 239
10.6 异常处理机制 242
10.7 使用异常的方法 245
10.8 本章小结 246
练习题 247
参考文献 248