教育>本科研究生>计算机类
面向对象编程技术与方法(C++)

面向对象编程技术与方法(C++)"

作者:赵清杰
ISBN:9787121423772
定价:¥52.0
字数:435千字
页数:260
出版时间:2021-12
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书系统讲解了面向对象编程技术与方法的相关内容,包括类与对象的概念,抽象、封装、继承、多态等面向对象编程技术的基本特征。主要内容包括面向对象编程技术概述、C++编程基础、函数、类与对象、运算符重载、继承与派生、多态、模板、异常处理及C++标准库,并在最后给出用面向对象方法开发学生信息管理系统的具体步骤和代码。书中所有例程均在Visual Studio 2019集成开发环境下调试通过。 本书力求让读者能够获得最大收益,不仅能掌握面向对象编程的技术与方法,而且能学会用C++语言编写程序,并能够利用C++标准库或者其他类库高效开发应用软件。 本书内容全面、语言简洁、重点突出、实例丰富、实用性强,既适合作为高等院校计算机、电子信息相关专业的教材或培训机构教材,也适合作为研究生教材及自学参考书。

前言

为什么写这本书 在这个日新月异的时代,手机和计算机已经成为我们生活和工作中必不可少的工具。我们从事工作、学习知识、网上购物、休闲娱乐等都需要与机器中的各种应用软件打交道。这些应用软件都是程序员利用计算机语言开发出来的,其规模有大有小,针对的实际问题有复杂有简单。当需要处理复杂问题及开发大型软件时,适合采用面向对象编程技术(object oriented programming)。 面向对象编程技术运用人类的自然思维方式,将数据与处理数据的操作封装在一起,构成抽象数据类型,通过继承(inheritance)和多态(polymorphism)机制生成新的数据类型。与面向过程编程技术相比,面向对象编程技术能够直接描述客观世界,更符合人类的思维方式,适用于解决复杂问题和开发大型软件。利用面向对象思想编写的程序,代码重用性好、容易扩展、便于后期维护。 概述与特色 本书主要讲述面向对象编程技术与方法的相关内容,包括对象与类的概念,抽象、封装、继承、多态等面向对象编程技术的基本特征。由于C++语言是一门功能强大的计算机编程语言,它同时支持多种编程技术,包括面向过程编程技术、面向对象编程技术及基于模板的泛型编程技术等,因此我们选用C++语言编写例程,目的是让读者学完之后能够获得最大收益,不仅能掌握面向对象编程的技术与方法,而且能学会用C++语言编写程序,并能够利用C++标准库或者其他类库高效开发应用软件。 作者在多年教学的基础上,根据教学过程中反映的主要问题,对教材内容进行了合理组合与取舍,力求澄清概念上的误区,通过实例使读者尽快掌握面向对象编程技术及C++语法知识,把重点放在程序设计方法上,使读者掌握标准模板库的精华,对面向过程编程和泛型编程有所了解,为今后的软件开发工作奠定基础。 本书具有如下特色。 ? 书中的所有例程都采用标准C++语言编写,不依赖某个编译器。但是书中的所有例程都在Viasual C++ 6.0和Visual Studio 2019集成开发环境下进行了运行验证。 ? 为了方便读者理解并与英文文献相对应,对于比较重要的概念性名词,书中都给出了相应的英文写法。 ? 将对象和类的概念提前介绍:从基本数据类型到结构,再到类,使读者尽快建立起“类”这种抽象数据类型的概念。在介绍对象的概念时,不是用过于抽象的语言,而是具体到计算机存储情况进行介绍的。 ? 与同类大部分中文教材相比,本书的主要特点有: ① 增加了指向成员的指针、成员函数地址获取、实现动态绑定的机制、函数对象等内容; ② 加强了对C++标准库,特别是对标准模板库STL的介绍; ③ 由于流(stream)类是C++标准库的一部分,因此本书并没有单列一章,而是将其放在第10章进行讲解的; ④ 结合第1章的例程介绍了Visual Studio 2019集成开发环境的使用,并在最后一章逐步讲解如何开发一个具有图形用户界面的简易学生信息管理系统。 ? 例程尽量采用好的编程习惯进行编写,例如:声明变量或对象时先进行初始化;使用不带后缀的标准库头文件;类定义时采用以行为为中心的书写方式,以增强程序的可读性等。 ? 本书内容全面、语言简洁、重点突出,所列举的例程实用有趣,个别习题具有一定难度。 ? 使用本书不需要有良好的C语言基础。 内容提要 本书分为11章。 第1章主要概述面向对象编程技术的基本概念和基本特征,目的是让读者尽早理解对象与类的概念,对面向对象编程技术的抽象、封装、继承、多态进行初步了解,以方便后面更深入的学习。本章举例介绍了Visual Studio 2019集成开发环境下C++程序的编译、连接与运行过程。由于书中的例程都要用到C++标准库,因此本章最后对C++标准库的主要内容进行了简单介绍。 第2章介绍C++程序设计的基础知识,目标是使读者掌握C++的基本概念和基本语法,内容包括C++的词法规则、数据类型、表达式与语句、预处理命令、名字空间等,并通过实例讲解C++基础语法知识,在此基础上使读者能够编写出简单的C++程序。 第3章主要介绍函数的定义与声明、如何调用函数、函数的参数传递及返回类型、inline函数、函数重载、带默认形参值的函数定义与使用等。 第4章主要介绍类与对象的定义,详细讨论类的构造函数与析构函数,特别是构造函数的不同重载形式;还介绍赋值成员函数、static成员及const成员、指向成员的指针,以及组合类、友元等内容。 第5章讨论运算符重载的概念、规则及两种重载形式,给出几种特殊运算符的重载方法与应用实例,介绍函数对象的概念及应用。 第6章介绍与类的继承有关的一些概念,如继承与派生、基类与派生类、向上类型转换、单继承与多继承及三种继承方式等,着重讨论在不同继承方式下基类成员的访问控制问题,讨论派生类的构造函数与析构函数,特别是复杂情况下子对象构造与析构的顺序问题,分析继承与组合的区别,讨论多继承中可能存在的歧义性及解决方法。 第7章介绍静态绑定、动态绑定、虚函数、抽象类等概念,详细讨论虚函数及动态绑定的实现机制,通过实例分析纯虚函数与抽象类的作用,介绍将函数对象与多态性相结合解决实际问题的方法。 第8章介绍函数模板的定义、重载与专门化,类模板的定义、专门化、用作函数参数及返回类型,以及类模板的继承与派生等内容。 第9章介绍C++语言的异常处理机制及带异常声明的函数,通过实例分析,从对象的成员函数抛出异常的几种情况出发,介绍C++标准库中定义的异常类型。 第10章在对C++标准库主要组件、特别是标准模板库的内容做更深入介绍的基础上,通过更多的实例来说明如何使用标准库。最后给出“石头-剪刀-布”游戏的例程。 第11章给出综合利用所学知识开发的例程,基于微软公司的MFC(Microsoft Foundation Classes)类库,开发一个简易的学生信息管理系统,编程环境是Visual Studio 2019。该系统中既有从MFC类库中自动派生出的类型,也有我们自己从CDialogEx中派生出的类型,还有我们自己设计的User类及派生出的Teacher类和Student类,程序中也涉及基于虚函数的动态多态性。 本书在写作过程中的主要参考文献列在了书后,书中有少量内容参考了互联网上的共享资源,书中第11章的代码由吕星晨提供。在此对这些作者表示衷心地感谢。 最后,感谢您选用本书,欢迎您对本书内容提出宝贵意见和建议。 赵清杰 2021年10月

目录

第1章 面向对象编程技术概述 1 1.1 两种编程方法举例 1 1.1.1 面向过程编程方法 1 1.1.2 面向对象编程方法 3 1.2 面向对象编程的基本特征 5 1.2.1 抽象 5 1.2.2 封装 5 1.2.3 继承 6 1.2.4 多态 7 1.3 程序的编译、连接与运行 8 1.4 C++标准库简介 10 1.5 小结 11 习题 1 11 第2章 C++编程基础 12 2.1 C++的词法规则 12 2.1.1 字符集 12 2.1.2 单词 13 2.2 C++的数据类型 14 2.2.1 基本数据类型 15 2.2.2 常量与变量 16 2.2.3 自定义数据类型 25 2.2.4 扩展数据类型 29 2.2.5 类型转换 37 2.2.6 typedef与typeid 39 2.3 表达式与语句 40 2.3.1 表达式 40 2.3.2 语句 44 2.4 预处理命令 49 2.4.1 宏定义命令 50 2.4.2 文件包含命令 50 2.4.3 条件编译命令 50 2.5 名字空间 52 2.5.1 名字空间声明 53 2.5.2 使用名字空间 53 2.5.3 标准名字空间std 55 2.6 小结 56 习题 2 56 第3章 函数 58 3.1 函数的定义与声明 58 3.2 函数调用 59 3.2.1 如何调用函数 59 3.2.2 参数传递 60 3.2.3 函数的返回类型 64 3.2.4 嵌套调用与递归调用 66 3.2.5 如何调用库函数 67 3.3 函数指针 67 3.4 static函数 69 3.5 inline函数 70 3.6 函数重载 71 3.7 带默认形参值的函数 72 3.8 小结 73 习题 3 73 第4章 类与对象 75 4.1 类与对象的定义 75 4.1.1 类的定义 75 4.1.2 类对象 78 4.1.3 类的封装性和信息隐藏 80 4.2 构造函数与析构函数 81 4.2.1 构造函数 82 4.2.2 析构函数 91 4.2.3 构造与析构的顺序 92 4.3 赋值成员函数 95 4.4 静态成员 98 4.4.1 静态数据成员 98 4.4.2 静态成员函数 99 4.5 常成员 100 4.5.1 常数据成员 100 4.5.2 常成员函数 101 4.5.3 mutable 102 4.6 指向成员的指针 103 4.6.1 成员指针的定义与使用 103 4.6.2 如何得到成员函数的地址 105 4.7 组合类 106 4.8 友元 108 4.8.1 友元函数 108 4.8.2 友元类 112 4.9 小结 113 习题 4 114 第5章 运算符重载 115 5.1 运算符重载的概念 115 5.2 运算符重载的规则 116 5.3 运算符重载的两种形式 116 5.3.1 重载为类的成员函数 116 5.3.2 重载为类的友元函数 118 5.3.3 两种重载方式讨论 119 5.4 特殊运算符重载举例 120 5.4.1 类型转换运算符 120 5.4.2 复合赋值运算符 121 5.4.3 自增和自减运算符 122 5.4.4 流提取运算符和流插入运算符 124 5.5 函数对象 125 5.6 小结 128 习题 5 128 第6章 继承与派生 129 6.1 基类与派生类 129 6.2 对基类成员的访问控制 130 6.2.1 公有继承 130 6.2.2 私有继承 134 6.2.3 保护继承 135 6.3 派生类的构造函数与析构函数 135 6.3.1 构造函数 135 6.3.2 析构函数 137 6.4 组合与继承的选择 139 6.5 多继承中的歧义 140 6.6 虚基类 141 6.7 小结 144 习题 6 144 第7章 多态 146 7.1 多态性概述 146 7.2 虚函数 147 7.2.1 虚函数的声明与应用 147 7.2.2 虚析构函数 150 7.3 如何实现动态绑定 152 7.4 纯虚函数与抽象类 155 7.5 小结 160 习题 7 160 第8章 模板 161 8.1 函数模板 161 8.1.1 函数模板的定义与使用 161 8.1.2 函数模板重载 164 8.1.3 函数模板专门化 165 8.1.4 使用标准库中的函数模板 166 8.2 类模板 167 8.2.1 类模板的定义与使用 167 8.2.2 类模板专门化 170 8.2.3 作为函数的参数及返回类型 172 8.2.4 使用标准库中的类模板 174 8.2.5 类模板的继承与派生 175 8.3 小结 178 习题 8 179 第9章 异常处理 180 9.1 异常处理概述 180 9.2 异常处理的实现 180 9.3 带异常声明的函数 184 9.4 成员函数抛出异常 185 9.4.1 一般成员函数抛出异常 185 9.4.2 构造函数抛出异常 186 9.4.3 析构函数抛出异常 188 9.5 标准库中的异常类型 189 9.6 小结 192 习题 9 192 第10章 C++标准库 193 10.1 标准库组织 193 10.2 容器 195 10.2.1 容器的成员 196 10.2.2 顺序容器 198 10.2.3 顺序容器适配器 200 10.2.4 关联容器 202 10.2.5 近容器 205 10.3 string 205 10.4 泛型算法 207 10.5 迭代器 210 10.5.1 迭代器的分类 211 10.5.2 使用迭代器 211 10.6 函数对象 215 10.7 流类 220 10.7.1 标准流 221 10.7.2 文件流 222 10.7.3 串流 223 10.7.4 重载提取运算符和插入运算符 224 10.7.5 输入/输出成员函数 225 10.7.6 输入/输出格式控制 228 10.8 数值计算 231 10.8.1 数学函数 231 10.8.2 向量计算 232 10.8.3 复数计算 234 10.8.4 泛型数值算法 235 10.8.5 随机数产生 236 10.9 小结 239 第11章 用面向对象方法开发学生信息管理系统 240 11.1 MFC简介 240 11.2 学生信息管理系统 240 11.2.1 建立基于对话框的应用程序框架 241 11.2.2 设计登录界面 243 11.2.3 设计User类 244 11.2.4 实现用户登录功能 246 11.2.5 设计学生信息管理系统主界面 247 11.2.6 实现学生管理功能 251 11.3 小结 258 附录 ASCII码表 259 参考文献 260

作者简介

编辑推荐

作者寄语

电子资料

http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0423770

www.luweidong.cn

下一个