第1章 从C到C++ 1
1.1 C++与C语言的区别与联系 1
1.2 C语言重要知识回顾及C++的扩展 2
1.2.1 常量 2
1.2.2 指针与引用 3
1.2.3 名字空间 6
1.2.4 C字符串和string类 8
1.2.5 函数 13
1.3 输入/输出流的基本知识 26
1.3.1 标准I/O流 27
1.3.2 文件流 27
1.3.3 流状态 31
1.3.4 文件操作实例 33
1.4 异常基本知识 34
练习 36
第2章 类和对象的创建 38
2.1 从结构体到类 38
2.2 类声明和对象定义 41
2.2.1 类的数据成员和成员函数 42
2.2.2 访问权限 43
2.3 构造函数和析构函数 44
2.3.1 构造函数 44
2.3.2 默认构造函数 47
2.3.3 构造函数的重载 48
2.3.4 参数初始化列表 54
2.3.5 析构函数 58
2.4 对象的复制与赋值 59
2.4.1 复制构造函数 59
2.4.2 深复制和复制构造函数 65
2.4.3 对象的赋值 67
2.5 构造函数和析构函数调用的顺序 71
练习 73
第3章 类和对象的使用 74
3.1 动态对象的创建与释放 74
3.2 对象数组 77
3.3 建立数组类 80
3.4 类的组合成员 84
3.5 静态成员 89
3.5.1 静态数据成员 91
3.5.2 静态成员函数 96
3.6 友元 98
3.6.1 普通函数作为友元函数 98
3.6.2 成员函数作为友元函数 102
3.6.3 友元类 107
3.7 综合应用例题 111
练习 115
第4章 运算符重载 116
4.1 运算符重载的定义 116
4.2 运算符重载的方法 117
4.3 运算符重载规则 118
4.4 单目运算符重载 119
4.5 双目运算符重载 123
4.5.1 下标运算符重载 123
4.5.2 赋值运算符重载 126
4.5.3 加法运算符重载 128
4.6 流插入运算符和流提取运算符的重载 129
4.7 不同类型数据间的转换 132
4.7.1 基本数据类型到类类型的转换 132
4.7.2 类类型到基本类型的转换 134
4.8 综合应用实例 135
练习 146
第5章 继承与派生 148
5.1 继承与派生的概念 148
5.2 定义基类和派生类 149
5.2.1 定义基类 149
5.2.2 定义派生类 152
5.3 基类成员在派生类中的可访问性 158
5.3.1 公用继承 158
5.3.2 私有继承 162
5.3.3 保护成员和保护继承 166
5.3.4 多级派生时的访问属性 169
5.4 派生类的构造函数和析构函数 172
5.5 多重继承与虚基类 177
5.5.1 多重继承 177
5.5.2 虚基类 181
5.6 基类与派生类的转换 183
5.7 综合应用例题 185
练习 189
第6章 多态性与虚函数 194
6.1 多态性的概念 194
6.2 虚函数 196
6.2.1 虚函数的作用 196
6.2.2 虚析构函数 197
6.3 纯虚函数与抽象类 200
6.3.1 纯虚函数 200
6.3.2 抽象类 200
6.3.3 抽象类应用实例 201
6.4 综合应用例题 205
练习 212
第7章 文件系统 214
7.1 文件的基本概念 214
7.1.1 文本文件和二进制文件 215
7.1.2 标准文件 216
7.1.3 缓冲型文件和非缓冲型文件 216
7.2 文件的打开和关闭 217
7.2.1 字符级读写 221
7.2.2 字符串级读写 222
7.2.3 格式化读写 223
7.2.4 二进制数据读写 225
7.3 文件定位函数 227
7.4 成批文件的处理 229
7.4.1 文件名骨架的设计 229
7.4.2 库函数_findfirst和_findnext 229
7.4.3 批处理文件函数构建 230
7.5 文件操作程序举例 233
练习 235
第8章 面向对象程序设计应用举例 236
8.1 问题提出 236
8.2 系统设计 237
8.3 系统实现 238
8.4 系统运行结果 255
练习 258
第9章 实验 259
实验1 指针、引用和函数重载 259
实验2 文件操作 260
实验3 类的建立和使用 260
实验4 运算符重载 261
实验5 继承与派生 261
实验6 多态性和虚函数 263
实验7 文件系统的操作 270
参考文献 271
附录 272
模拟试卷1 272
模拟试卷2 277
模拟试卷3 283
模拟试卷4 293