C++面向对象程序设计
书 号:9787113242190
丛 书 名:
作 者:李文,黄丽韶,吕兰兰
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:40元
-
内容简介
C++继承了C语言效率高的优点,实现了面向对象技术的抽象、封装、继承和多态等核心特性,使得C++成为开发大型复杂软件的首选编程语言。
本教材以面向对象程序设计思想为主线,介绍使用C++语言进行程序设计的基本知识和方法。主要内容包括:C++语言基础,类与对象初步,数据的共享与保护,继承与派生,多态性,流类库与输入输出,异常处理,个人银行账户管理系统。
本书注重程序实例的合理性,注重引导读者理解并学会应用面向对象程序设计的思想和方法,力求从应用出发培养学生的学习兴趣,适合作为普通高等院校计算机及其相关专业本科生的教材。 -
前言
C++作为一门优秀的面向对象编程语言,已经成为近十年来最流行、应用范围最广的编程语言之一,被广泛应用于众多工程技术领域。C++在继承C语言效率高的优点的同时,还实现了面向对象技术的抽象、封装、继承和多态等核心特性。由于这些特性,使得面向对象程序相比传统的结构化程序而言,具有更高的可复用性、可扩展性和可维护性。这使得C++成为开发大型复杂软件的首选编程语言。同时,C++面向对象程序设计也成为计算机科学与技术、软件工程等相关专业的基础课程之一。
C++既支持面向过程的程序设计,也支持面向对象的程序设计。因此,大多数C++书籍中通常既包含面向过程的内容,也包含面向对象的内容,书中有大量篇幅介绍C语言中的知识。考虑到计算机科学与技术、软件工程等相关专业的学生,在学习C++面向对象程序设计课程之前,大多已学过C语言程序设计课程。因此,本书在内容组织安排上选择了以面向对象为主的方式,书中包含的C语言面向过程设计部分的内容较少。
本书编者长期从事计算机科学与技术专业、软件工程专业的C++程序设计教学工作,在教学中遇到了一些问题,例如:C++语法规则繁多,学生很难完全理解,容易导致畏难情绪;学生学习语法知识后不了解其应用方法,在程序开发时无法灵活应用所学知识等。同时,本书编者也积累了一些教学经验,因此萌生了编写一本C++教材的想法。
基于作者在C++程序设计教学实践中遇到的问题,本书注重程序实例的合理性,注重引导读者理解并学会应用面向对象程序设计的思想和方法,力求从应用出发培养学生的学习兴趣。例如,在讲解基本语法规则之前,先通过浅显的例子帮助读者理解相应知识点,在此基础上再力求使读者达到运用相应知识点的目标;对教学中的重点和难点内容,精心设计实例进行细致分析。
本书的主要特色如下:
1.注重基础
本书较全面地介绍了C++的基本语法和相关知识,并将面向对象设计的思想融合于问题的解决中。本书面向大学计算机相关专业的低年级学生,建议读者最好具有一定的C语言程序设计基础。
2.深入浅出
本书力求用简洁浅显的语言讲述复杂的概念,力求做到通俗易懂、深入浅出。本书的宗旨是让读者不但要知其然,还要知其所以然,因此对于C++的一些语法特性,不但介绍如何使用,还会介绍C++为什么会有这个语法特性。
3.方便裁剪
书中每个章节安排适当,符合计算机相关专业的教学需求,不同学校可以针对自身的教学特点,选择不同的章节组合进行教学,教师也可以根据授课对象的实际情况进行灵活裁剪。
本书内容上主要分9章。
绪论:介绍了程序设计语言的历史和特点,面向对象方法的基本概念,面向对象的软件开发过程,以及程序开发的基本概念。
C++语言基础:介绍了C++程序设计的基础知识,简述了C++语言与C语言的区别,并介绍C++语言对C语言进行的扩展,包括基本数据类型和自定义数据类型、数据的输入与输出、三种基本控制结构(顺序、选择和循环结构)、指针和引用、函数重载等。
类与对象初步:介绍了面向对象程序设计的一大特性——封装。从数据封装的角度,介绍了面向对象程序设计中的核心概念——类,包括类的声明和实现,类成员的初始化(类的构造函数和析构函数),以及如何使用类解决具体问题(类的组合)。此外,还对比了类与结构体和联合体的区别,简单介绍了如何用UML描述类的特性。
数据的共享与保护:从数据共享的角度,介绍了标识符的作用域与可见性、对象的生存期、类的静态成员、类的友元;从保护共享数据的角度,介绍了常对象和常引用。最后介绍了多文件结构和编译预处理命令。
继承与派生:介绍了面向对象程序设计的另一大特性——继承。介绍了继承与派生的基本概念、派生类的声明和实现方式、派生类成员的初始化(派生类的构造函数和析构函数),讨论了三种不同派生方式下派生类对基类成员的访问控制方式,以及公有派生下派生类和基类的兼容规则,分析了多继承存在的二义性问题并提出了虚基类的解决方案。最后,分析了在解决实际问题时,如何合理运用类与类之间的继承、组合与使用关系。
多态性:介绍了面向对象程序设计的另一大特性——多态。简单介绍了多态的概念,详述C++支持的两种多态类型:静态多态(函数重载)和动态多态(虚函数),分析了虚析构函数的声明方式和必要性,以及纯虚函数和抽象类的使用场合。
流类库与输入/输出:介绍了输入/输出流的概念,以及C++输入/输出流类库的结构和使用方法。
异常处理:讲述了异常处理概念和基本思想,以及C++异常处理机制的实现,还简单介绍了异常处理中析构函数的处理和标准程序库异常处理。
个人银行账户管理系统:本章主要的目的是培养学生综合运用面向对象程序设计基本知识和方法进行项目设计的能力;初步培养学生运用软件工程思想进行项目设计的能力
本书由湖南科技学院电子与信息工程学院组织编写,在总结各位教师多年教学经验的基础上,倾注了C++教学团队教师大量的心血。本书由李文、黄丽韶、吕兰兰任主编,郭力勇、何琛、扈乐华、周鹏、邵金侠任副主编,其中第1、2章由李文编写,第3、4章由黄丽韶编写,第5、6章由吕兰兰编写,第7章由郭力勇编写,第8章由何琛、周鹏编写,第9章由扈乐华、邵金侠编写。全书由李文、黄丽韶、吕兰兰统稿。在本书的写作过程中,编者参考了国内外许多优秀的同类教材以及网络资源,在此向其作者表示衷心感谢。感谢所有支持和帮助过本书编写的人们。
感谢以下项目的资助:
【1】湖南省普通高等学校“十三五”专业综合改革试点项目(湘教通〔2016〕276号);
【2】湖南省普通高校校企合作创新创业教育基地(湘教通〔2016〕436号);
【3】湖南科技学院计算机应用技术重点学科建设项目;
【4】教育部高教司产教合作项目(201601021003,201701034028);
【5】湖南省教育厅教改项目(湘教通〔2016〕400号);
【6】湖南省教育科学“十三五”规划课题(XJK17QGD008)。
虽然编者在高校从事了多年的C++教学,但对这门与时俱进的语言仍然有不能掌控的地方。由于编者水平所限,加之时间仓促,书中难免存在不当和疏漏之处,恳请广大读者及同仁们批评指正,以便于我们在今后的版本中进行改进。
编 者
2017年12月 -
目录
第1章 绪论 1
1.1 计算机程序设计语言的发展 1
1.1.1 机器语言与汇编语言 1
1.1.2 高级语言 2
1.1.3 面向对象的语言 2
1.2 面向对象的方法 2
1.2.1 面向对象方法的由来 2
1.2.2 面向对象的基本概念 3
1.3 面向对象的软件开发 5
1.3.1 分析 5
1.3.2 设计 5
1.3.3 编程 5
1.3.4 测试 6
1.3.5 维护 6
1.4 程序开发的基本概念 6
1.4.1 基本术语 6
1.4.2 完整的程序过程 7
习题 7
第2章 C++语言基础 8
2.1 C++语言概述 8
2.1.1 C++的产生 8
2.1.2 C++的特点 8
2.1.3 C++程序实例 9
2.1.4 字符集 10
2.1.5 词法记号 10
2.2 基本数据类型与表达式 12
2.2.1 基本数据类型 12
2.2.2 常量 13
2.2.3 变量 15
2.2.4 符号常量 16
2.2.5 运算符与表达式 16
2.2.6 语句 25
2.3 数据的输入与输出 26
2.3.1 I/O流 26
2.3.2 预定义的插入符和提取符 26
2.3.3 简单的I/O格式控制 27
2.4 算法的基本控制结构 27
2.4.1 分支结构 28
2.4.2 循环语句 30
2.4.3 循环与选择结构的嵌套 31
2.4.4 break和continue语句 33
2.5 自定义数据类型 34
2.5.1 typedef声明 34
2.5.2 枚举类型enum 35
2.6 复杂数据及运算 36
2.6.1 数组 36
2.6.2 指针 38
2.6.3 字符串 41
2.7 函数 45
2.7.1 函数的定义与使用 46
2.7.2 内联函数 50
2.7.3 带默认形参值的函数 51
2.7.4 函数重载 52
2.7.5 C++系统函数 54
习题 55
第3章 类与对象初步 56
3.1 面向对象程序设计的基本特点 56
3.1.1 抽象 56
3.1.2 封装 56
3.1.3 继承 57
3.1.4 多态 57
3.2 类和对象 57
3.2.1 类和对象的关系 57
3.2.2 类的声明 58
3.2.3 成员函数 59
3.2.4 对象的定义格式 59
3.2.5 对象的使用 60
3.2.6 对象的存储空间 60
3.2.7 程序实例 60
3.3 构造函数和析构函数 61
3.3.1 构造函数定义 61
3.3.2 调用构造函数 62
3.3.3 复制构造函数 63
3.3.4 析构函数 64
3.4 类 67
3.4.1 类的组合 67
3.4.2 前向引用声明 69
3.5 结构体和联合体 70
3.5.1 结构体 70
3.5.2 联合体 71
3.6 UML简介 72
3.6.1 类图 73
3.6.2 对象图 74
3.6.3 类与对象关系的图形标识 74
3.6.4 注释 74
习题 75
第4章 数据的共享与保护 76
4.1 标识符的作用域与可见性 76
4.1.1 作用域 76
4.1.2 可见性 78
4.2 对象的生存期 79
4.2.1 静态生存期 79
4.2.2 动态生存期 79
4.3 类的静态成员 81
4.3.1 静态数据成员 82
4.3.2 静态成员函数 82
4.4 类的友元 84
4.4.1 友元函数 85
4.4.2 友元类 86
4.5 共享数据的保护 87
4.5.1 常对象 87
4.5.2 对象的常成员函数 88
4.5.3 对象的常数据成员 89
4.5.4 常引用 90
4.6 多文件结构和编译预处理命令 91
4.6.1 C++程序的一般组织结构 91
4.6.2 编译预处理命令 92
习题 95
第5章 继承与派生 97
5.1 继承与派生的概念 97
5.2 类的继承和派生 98
5.2.1 派生类的定义 98
5.2.2 派生类的构成 102
5.3 派生类的构造函数和析构函数 104
5.3.1 调用基类的构造函数和析构函数 104
5.3.2 构造函数链和析构函数链 108
5.4 派生类对基类成员的访问控制 110
5.4.1 公有派生 110
5.4.2 私有派生 113
5.4.3 保护派生 115
5.5 派生类和基类的兼容规则 121
5.6 多继承 126
5.6.1 多继承的声明 126
5.6.2 虚基类的使用 129
5.7 类与类之间的关系 129
5.7.1 类的继承、组合与使用 129
5.7.2 继承、组合和使用的选择 131
习题 132
第6章 多态性 134
6.1 多态的概念 134
6.2 多态的类型 135
6.3 运算符重载 135
6.3.1 运算符重载的概念 135
6.3.2 运算符重载的规则 136
6.3.3 运算符重载为成员函数 137
6.3.4 运算符重载为全局函数 139
6.3.5 全局函数与成员函数的比较 145
6.4 虚函数 146
6.5 虚析构函数 151
6.6 纯虚函数与抽象类 155
6.6.1 纯虚函数 155
6.6.2 抽象类 158
习题 160
第7章 流类库与输入/输出 162
7.1 I/O流的概念及流类库结构 162
7.2 输出流 163
7.2.1 构造输出流对象 164
7.2.2 使用插入运算符和操作符 164
7.2.3 文件输出流成员函数 168
7.2.4 字符串输出流 169
7.2.5 二进制输出文件 170
7.3 输入流 171
7.3.1 构造输入流对象 171
7.3.2 使用提取运算符 171
7.3.3 输入流操作符 171
7.3.4 输入流相关函数 172
7.3.5 字符串输入流 175
7.4 输入/输出流 176
习题 176
第8章 异常处理 177
8.1 异常处理的基本思想 177
8.2 C++异常处理的实现 177
8.2.1 异常处理的语法 178
8.2.2 在函数声明中进行异常情况指定 180
8.3 异常处理中处理析构函数 180
8.4 标准程序库异常处理 182
习题 184
第9章 个人银行账户管理系统 185
9.1 需求分析 185
9.2 编码实现 186
9.3 数据测试 194
9.4 总结 195
习题 195 -
作者介绍
李文,男,副教授,电子与信息工程学院副院长,湖南科技学院,专业研究方向为进化计算及人工智能、网络安全,主授课程为模拟电子技术、数字逻辑等。黄丽韶,女,讲师,计算机科学与技术系系主任,湖南科技学院,专业研究方向为智能算法,图像处理等,主授课程为C语言,C面向对象程序设计等。 吕兰兰,女,讲师,软件工程系系主任,湖南科技学院,专业研究方向为软件工程及音频信号处理,主授课程为C面向对象程序设计等。 -
编辑推荐
-
书评书荐
-
附件下载
图书推荐