第1章 面向对象程序设计与C++概述 1
1.1 软件 1
1.2 程序设计语言 2
1.3 程序设计方法的演变 4
1.3.1 结构化程序设计 4
1.3.2 面向对象程序设计方法 5
1.4 C++程序设计语言 7
1.5 简单的C++程序 8
1.5.1 第一个C++程序 8
1.5.2 第二个C++程序 11
1.5.3 第三个程序 14
本章小结 16
第2章 从C到C++ 17
2.1 C++关键字 17
2.2 const常量 17
2.2.1 问题的引出 18
2.2.2 const与C语言中#define的区别 19
2.2.3 const定义 19
2.3 函数 20
2.3.1 内联函数(inline函数) 20
2.3.2 重载函数 24
2.3.3 函数参数的默认值 27
2.3.4 函数模板 30
2.4 指针 38
2.4.1 存储数据的两种策略 38
2.4.2 声明和初始化指针 41
2.4.3 指针与动态内存分配 43
2.4.4 const与指针 46
2.5 引用 48
2.5.1 引用的概念 49
2.5.2 引用的操作 50
2.6 名称空间 54
2.6.1 名称空间的意义 54
2.6.2 名称空间定义 55
2.6.3 名称空间成员的存取 56
2.6.4 未命名的名称空间 59
2.6.5 标准名称空间std 59
本章小结 60
本章作业 62
第3章 类与对象 65
3.1 类 65
3.1.1 类的定义 66
3.1.2 类成员的访问限制 73
3.1.3 友元 75
3.2 对象 84
3.3 类的静态成员 92
3.3.1 静态数据成员 92
3.3.2 静态成员函数 93
3.4 this指针 96
3.5 类的结构与接口 98
3.6 程序结构 102
本章小结 113
本章作业 114
第4章 构造函数与析构函数 116
4.1 对象的创建 116
4.2 构造函数 117
4.2.1 默认构造函数 119
4.2.2 带参数构造函数 122
4.2.3 拷贝构造函数 123
4.2.4 重载构造函数 128
4.3 析构函数 131
4.4 成员初始化列表及顺序 132
4.5 典型举例 136
本章小结 138
本章作业 138
第5章 继承 140
5.1 类的层次结构 140
5.2 基类与派生类 141
5.3 派生类对象的构造 142
5.3.1 派生类对象的内存空间 142
5.3.2 公有继承的含义 148
5.3.3 派生类对象的构造 149
5.3.4 Protected成员 154
5.4 组合 155
5.4.1 组合的语法 155
5.4.2 组合和继承的联合 159
5.5 继承的方式和访问控制 160
5.5.1 公有继承 160
5.5.2 私有继承 161
5.5.3 保护继承 161
5.6 多重继承 164
5.6.1 多继承的工作方式 164
5.6.2 多继承中的二义性问题 167
5.6.3 虚拟继承 169
5.6.4 构造函数的调用顺序 173
本章小结 174
本章作业 174
第6章 多态 176
6.1 多态和虚函数 176
6.1.1 什么是多态性 176
6.1.2 绑定和C++中的多态性类型 176
6.1.3 虚函数 179
6.1.4 虚函数的工作方式 187
6.2 纯虚函数和抽象类 189
6.2.1 纯虚函数 189
6.2.2 抽象类 191
6.3 虚析构函数 193
6.4 利用多态性实现工资计算实例 195
本章小结 200
本章作业 200
第7章 类模板 203
7.1 类模板的概念 203
7.2 实例化类模板 206
7.3 类模板的成员函数 207
7.4 顺序表类模板 209
本章小结 220
本章作业 220
第8章 运算符重载 221
8.1 运算符重载的概念 221
8.1.1 运算符的两种重载方式 223
8.1.2 运算符函数的原型 223
8.2 使用成员函数重载二元运算符 224
8.3 使用友元函数重载二元运算符 229
8.4 重载一元运算符 233
8.4.1 重载运算符“++” 234
8.4.2 重载赋值运算符“=” 236
8.5 类型转换运算符与类型转换构造函数 240
8.5.1 类型转换运算符 241
8.5.2 类型转换构造函数 244
本章小结 248
本章作业 249
第9章 异常处理 252
9.1 异常处理的概念 252
9.2 异常处理的基本语法 253
9.3 如何进行异常处理 254
9.3.1 抛出异常 255
9.3.2 try块 255
9.3.3 捕获异常 256
9.4 抛出异常的对象 263
本章小结 274
本章作业 274
第10章 I/O流 277
10.1 C++的流及流类库 277
10.1.1 C++的流 277
10.1.2 流类库 282
10.2 输入输出的格式控制 283
10.2.1 用ios类成员函数进行格式控制 283
10.2.2 使用操作符进行输入输出格式控制 287
10.3 文件输入输出 289
10.3.1 文件的打开与关闭 290
10.3.2 文本文件的读/写 291
10.3.3 二进制文件的读/写 292
10.3.4 随机访问文件 294
本章小结 296
本章作业 296
参考文献 298
全国等级考试《C++程序设计》考试大纲 299
模拟试题A 302
模拟试题B 310
模拟试题参考答案 316