C C++程序设计教程 面向对象分册 第3版
作者:郑秋生主编 刘凤华,王文奇,李晓宇副主编
出版时间: 2018年版
内容简介
本书的特点是实例丰富,重点突出,叙述深入浅出,分析问题透彻,既有完整的语法,又有大量的实例,突出程序设计的思想和方法,将C语言程序设计和C++程序设计有机地统一。特别适合作为计算机学科各应用型本科、专科的C语言程序设计和C++语言程序设计教材,也可作为其它理工科各专业的教材,也适合作为相关技术人员的自学参考书。
目录
第1章 类和对象\t1
1.1 从C到C++\t3
1.1.1 C++的诞生\t3
1.1.2 C++对C的扩充\t3
1.1.3 面向对象和面向过程的区别\t9
1.1.4 命名空间\t12
1.2 面向对象程序设计的基本概念\t17
1.2.1 类\t17
1.2.2 对象\t18
1.2.3 封装与数据隐藏\t18
1.2.4 继承\t18
1.2.5 多态性\t19
1.2.6 消息\t19
1.3 类和对象的定义\t19
1.3.1 类的定义\t20
1.3.2 成员函数的定义\t23
1.3.3 类对象的定义\t26
1.3.4 对象成员的访问\t27
1.3.5 类对象的内存分配\t32
1.3.6 this指针\t33
1.4 构造函数和析构函数\t35
1.4.1 构造函数的定义\t35
1.4.2 构造函数的重载\t38
1.4.3 带默认参数的构造函数\t40
1.4.4 析构函数\t42
1.4.5 拷贝构造函数和默认拷贝
构造函数\t43
1.5 综合应用举实例\t48
习题1\t50
第2章 类和对象的进一步应用\t55
2.1 对象的进一步应用\t57
2.1.1 堆对象\t57
2.1.2 对象数组\t57
2.1.3 类对象作为成员\t59
2.1.4 面向对象程序中的常量\t62
2.2 静态成员\t65
2.2.1 静态数据成员\t65
2.2.2 静态成员函数\t67
2.3 友元函数和友元类\t71
2.3.1 友元函数\t71
2.3.2 友元类\t75
2.4 string类\t77
2.4.1 char型字符串\t77
2.4.2 string型字符串定义\t77
2.4.3 string类构造函数\t78
2.4.4 string类成员函数\t79
2.5 综合应用实例\t82
习题2\t86
第3章 继承与派生\t91
3.1 继承与派生的基础知识\t93
3.1.1 继承与派生的基本概念\t93
3.1.2 派生类的声明方式\t94
3.1.3 派生类的构成\t97
3.2 类的继承方式\t98
3.2.1 公有继承\t98
3.2.2 私有继承\t100
3.2.3 保护继承\t102
3.2.4 继承方式的总结和比较\t102
3.3 派生类的构造函数与析构函数\t103
3.3.1 简单派生类的构造函数\t104
3.3.2 析构函数\t105
3.3.3 复杂派生类构造函数和析构
函数\t106
3.3.4 派生友元类\t109
3.4 基类对象与派生类对象的相互
转换\t110
3.5 多重继承\t112
3.5.1 多重继承的定义\t112
3.5.2 多重继承中的二义性问题\t114
*3.6 虚继承和虚基类\t119
3.6.1 虚继承和虚基类的定义\t119
3.6.2 虚基类及其派生类构造函数
执行顺序\t122
3.7 C++ 11新特性之继承构造函数和
委派构造函数\t124
3.7.1 继承构造函数\t124
3.7.2 委派构造函数\t125
3.8 综合应用实例\t126
习题3\t139
第4章 多态性\t147
4.1 多态性的概念\t149
4.2 运算符重载\t149
4.2.1 运算符重载概述\t149
4.2.2 运算符重载的实现\t150
4.2.3 单目运算符重载\t151
4.2.4 双目运算符重载\t153
4.2.5 赋值运算符重载\t156
4.2.6 下标运算符[ ]重载\t159
4.2.7 关系运算符重载\t161
4.2.8 类型转换运算符重载\t163
4.2.9 函数对象\t164
4.3 联编和虚函数\t165
4.3.1 静态联编和动态联编\t165
4.3.2 虚函数的引入\t165
4.3.3 虚函数的定义\t168
4.3.4 动态联编的工作机制\t170
4.3.5 虚析构函数\t171
4.4 纯虚函数和抽象类\t173
4.4.1 纯虚函数\t173
4.4.2 抽象类\t173
4.5 综合应用实例\t176
习题4\t181
第5章 输入/输出流\t183
5.1 输入/输出流的基本概念\t185
5.1.1 从C语言的输入/输出函数
到C++的输入/输出流\t185
5.1.2 流的概念及流类库\t186
5.1.3 流的深入探讨\t187
5.2 面向标准设备的输入/输出流\t188
5.2.1 标准流对象\t188
5.2.2 标准输入/输出流的
格式化\t189
5.2.3 用流成员函数实现输入/
输出\t195
5.3 面向文件的输入/输出流\t197
5.3.1 文件流类与文件流对象\t197
5.3.2 文件的打开和关闭\t198
5.3.3 文本文件的输入/输出
(读/写)\t200
5.3.4 二进制文件的输入/输出
(读/写)\t202
5.3.5 文件的随机访问\t204
5.4 面向内存的字符串流\t206
5.5 自定义数据类型的输入/输出\t210
5.6 综合应用实例\t211
习题5\t216
第6章 异常处理\t219
6.1 异常的概念\t221
6.1.1 错误处理的复杂性\t221
6.2 异常处理机制\t222
6.2.1 异常处理机制的组成\t222
6.2.2 异常处理的实现\t222
6.3 异常处理规范\t227
6.4 标准库中的异常类\t229
6.5 C++11引入的异常处理\t230
6.6 综合应用实例\t231
习题6\t236
第7章 模板\t237
7.1 模板的概念\t239
7.2 函数模板\t239
7.2.1 函数模板语法\t240
7.2.2 函数模板实例化\t241
7.2.3 函数模板中模板参数隐式
转换产生的错误\t243
7.2.4 用户定义的参数类型\t245
7.2.5 函数模板和模板函数\t247
7.2.6 使用函数模板需要注意的
问题\t247
7.3 类模板\t248
7.3.1 类模板的语法\t249
7.3.2 类模板实例化\t250
7.3.3 类模板的派生和继承\t258
7.3.4 使用类模板的注意事项\t260
7.4 C++11标准的模板新内容\t261
7.4.1 模板的右尖括号\t261
7.4.2 别名模板\t261
7.4.3 函数模板的默认参数\t262
7.4.4 变长参数\t264
7.5 综合应用实例\t266
习题7\t271
第8章 标准模板库(STL)的介绍及应用\t273
8.1 标准模板库(STL)的概念\t275
8.1.1 什么是STL\t275
8.1.2 STL的组成部分\t275
8.1.3 STL对C++的影响\t276
8.2 容器\t276
8.2.1 容器简介\t276
8.2.2 容器的结构\t277
8.2.3 容器的使用\t278
8.3 迭代器\t284
8.3.1 输入迭代器\t285
8.3.2 输出迭代器\t285
8.3.3 前向迭代器\t286
8.3.4 双向迭代器\t287
8.3.5 随机存取迭代器\t287
8.3.6 迭代器的使用\t287
8.4 算法\t288
8.4.1 算法和函数对象\t288
8.4.2 算法分类介绍\t289
8.5 综合应用实例\t293
习题8\t296
第9章 面向对象程序设计实例\t297
9.1 图书管理系统需求分析\t299
9.1.1 需求分析的任务\t299
9.1.2 图书管理系统需求描述\t299
9.1.3 图书管理系统需求\t299
9.2 图书管理系统需求模型\t300
9.2.1 图书管理系统用例图\t300
9.2.2 图书管理系统用例规约\t301
9.3 图书管理系统设计\t308
9.3.1 分析类\t308
9.3.2 顺序图\t308
9.3.3 设计类图\t309
9.3.4 系统结构设计\t310
9.4 图书管理系统的实现\t311
9.4.1 类的定义\t311
9.4.2 类的实现\t313
9.4.3 用户界面设计\t322
9.4.4 系统主函数\t323
9.4.5 系统管理员功能模块\t325
9.4.6 普通管理员功能\t328
习题9\t331
附录A 常用容器与算法介绍\t332
A.1 常用容器\t332
A.1.1 向量(vector)\t332
A.1.2 列表(list)\t334
A.1.3 双队列(deque)\t336
A.1.4 栈(stack)\t339
A.1.5 队列(queue)\t339
A.2 常用算法\t340
A.2.1 非修正算法\t340
A.2.2 修正算法\t341
A.2.3 排序算法\t343
A.2.4 数值计算算法\t344
附录B C++新特性\t345
附录C C/C++跨平台开源开发环境――
Code::Blocks\t351
参考文献\t356