华信教育资源网
C++面向对象程序设计(第3版)
丛   书   名: 全国电子信息类优秀教材  新工科建设之路·计算机学科规划教材
作   译   者:杜茂康,谢青 出 版 日 期:2017-06-01
出   版   社:电子工业出版社 维   护   人:章海涛 
书   代   号:G0315830 I S B N:9787121315831

图书简介:

本书以C++ 11标准为指导,深入浅出地介绍了标准C++面向对象程序设计的相关知识,以及用Visual C++进行面向对象的Windows程序设计的基本原理和方法,包括C++对C语言的扩展、类、对象、友元、继承、多态性、虚函数、重载、I/O流类库、文件、模板与STL、C++ Windows程序的结构、消息驱动、MFC应用程序框架、GDI、菜单、对话框、工具栏、文档与视图等内容。全书本着易于理解、实用性强的原则设计其内容和案例,并以一个规模较大的综合性程序的编制贯穿于C++面向对象技术和Windows程序设计的全过程,引导读者理解和掌握面向对象程序设计的思想、技术、方法,以及在Windows程序中应用自定义类实现程序功能的软件开发方法。本书取材新颖,内容全面,通俗易懂,可作为高等院校计算机、电子信息类专业及其他理工类相关专业的教材,也可作为C++语言自学者或程序设计人员的参考用书。
定价 52.0
您的专属联系人更多
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书以C++ 11标准为指导,深入浅出地介绍了标准C++面向对象程序设计的相关知识,以及用Visual C++进行面向对象的Windows程序设计的基本原理和方法,包括C++对C语言的扩展、类、对象、友元、继承、多态性、虚函数、重载、I/O流类库、文件、模板与STL、C++ Windows程序的结构、消息驱动、MFC应用程序框架、GDI、菜单、对话框、工具栏、文档与视图等内容。全书本着易于理解、实用性强的原则设计其内容和案例,并以一个规模较大的综合性程序的编制贯穿于C++面向对象技术和Windows程序设计的全过程,引导读者理解和掌握面向对象程序设计的思想、技术、方法,以及在Windows程序中应用自定义类实现程序功能的软件开发方法。本书取材新颖,内容全面,通俗易懂,可作为高等院校计算机、电子信息类专业及其他理工类相关专业的教材,也可作为C++语言自学者或程序设计人员的参考用书。

    图书详情

    ISBN:9787121315831
    开 本:16开
    页 数:424
    字 数:740.0

    本书目录

    目    录
    第1章  C++与面向对象程序设计概述	1
    1.1  面向过程和面向对象程序设计	1
    1.2  面向对象程序语言的特征	3
    1.3  C++与面向对象程序设计	5
    1.3.1  C++简史	6
    1.3.2  C++的特点	7
    1.3.3  C++程序的结构	7
    1.3.4  标准C++程序设计	9
    1.4  数据的输入和输出	11
    1.4.1  C++的数据类型	11
    1.4.2  流的概念	12
    1.4.3  cin和提取运算符>>	12
    1.4.4  cout和插入运算符<<	14
    1.4.5  输出格式控制符	16
    1.4.6  数制基数	17
    1.4.7  string与字符串输入/输出	18
    1.4.8  数据输入的典型问题	19
    1.5  编程实作——Visual C++ 2015编程简介	24
    习题1	26
    第2章  C++基础	28
    2.1  C++对C语言数据类型的扩展	28
    2.2  左值、右值及C++对局部变量声明的改进	29
    2.2.1  左值和右值	29
    2.2.2  C++局部变量的声明与定义	29
    2.3  指针	30
    2.3.1  指针概念的回顾	30
    2.3.2  空指针、void*以及获取数组首、尾元素位置的指针	31
    2.3.3  new和delete	32
    2.3.4  智能指针11C++	34
    2.4  引用	36
    2.4.1  左值引用	36
    2.4.2  右值引用11C++	39
    2.5  const和constexpr常量	40
    2.5.1  常量的定义	40
    2.5.2  const、constexpr与指针	41
    2.5.3  const与引用	42
    2.5.4  顶层const和底层const	43
    2.6  auto和decltype类型11C++	44
    2.7  begin、end和基于范围的for循环11C++	45
    2.8  类型转换	46
    2.9  函数	49
    2.9.1  函数原型	49
    2.9.2  函数参数传递的类型	50
    2.9.3  函数默认参数	54
    2.9.4  函数返回值	55
    2.9.5  函数重载	57
    2.9.6  函数与const和constexpr	60
    2.9.7  内联函数	62
    2.10  Lamada表达式11C++	63
    2.11  命名空间	65
    2.12  预处理器	67
    2.13  作用域和生命期	68
    2.13.1  作用域	68
    2.13.2  变量类型及生命期	70
    2.13.3  初始化列表、变量初始化与赋值	71
    2.13.4  局部变量与函数返回地址	73
    2.14  文件输入和输出	73
    2.15  编程实作	75
    习题2	77
    第3章  类和对象	81
    3.1  类的抽象和封装	81
    3.1.1  抽象	81
    3.1.2  封装	83
    3.2  struct和class	85
    3.2.1  C++对struct的扩展	85
    3.2.2  类(class)	87
    3.3  数据成员	89
    3.4  成员函数	90
    3.4.1  成员函数定义方式和内联函数	90
    3.4.2  常量成员函数	91
    3.4.3  成员函数重载和默认参数值	92
    3.5  对象	92
    3.6  构造函数设计	95
    3.6.1  构造函数和类内初始值	95
    3.6.2  默认构造函数	97
    3.6.3  重载构造函数	100
    3.6.4  构造函数与初始化列表	102
    3.6.5  委托构造函数11C++	104
    3.7  析构函数	105
    3.8  赋值运算符函数、拷贝构造函数和移动函数设计	107
    3.8.1  赋值运算符函数	107
    3.8.2  拷贝构造函数	110
    3.8.3  移动函数11C++	113
    3.9  静态成员	117
    3.10  this指针	120
    3.11  对象应用	124
    3.12  类的作用域和对象的生存期	128
    3.13  友元	131
    3.14  编程实例:类的接口与实现的分离	132
    3.14.1  头文件	133
    3.14.2  源文件	134
    3.14.3  对类的应用	135
    习题3	138
    第4章  继承	142
    4.1  继承的概念	142
    4.2  protected和继承	143
    4.3  继承方式	144
    4.4  派生类对基类的扩展	147
    4.4.1  成员函数的重定义和名字隐藏	147
    4.4.2  基类成员访问	149
    4.4.3  using和隐藏函数重现11C++	149
    4.4.4  派生类修改基类成员的访问权限	150
    4.4.5  友元与继承	151
    4.4.6  静态成员与继承	152
    4.4.7  继承和类作用域	154
    4.5  构造函数和析构函数	155
    4.5.1  派生类构造函数的建立规则	155
    4.5.2  派生类构造函数和析构函数的调用次序	159
    4.5.3  派生类的赋值、拷贝和移动操作	161
    4.6  基类与派生类对象的关系	163
    4.6.1  派生类对象对基类对象的赋值和初始化	163
    4.6.2  派生类对象与基类对象的类型转换	165
    4.7  多重继承	167
    4.7.1  多重继承的概念和应用	167
    4.7.2  多重继承方式下成员的二义性	169
    4.7.3  多重继承的构造函数和析构函数	169
    4.8  虚拟继承	171
    4.9  继承和组合	175
    4.10  编程实例	180
    习题4	185
    第5章  多态性	189
    5.1  多态性概述	189
    5.1.1  多态的概念	189
    5.1.2  多态的意义	191
    5.1.3  多态和联编	192
    5.2  虚函数	192
    5.2.1  虚函数的意义	192
    5.2.2  override和final 11C++	195
    5.2.3  虚函数的特性	197
    5.3  虚析构函数	201
    5.4  纯虚函数和抽象类	202
    5.4.1  纯虚函数和抽象类	202
    5.4.3  抽象类的应用	204
    5.4  运行时类型信息	210
    5.4.1  dynamic_cast	211
    5.4.2  typeid	214
    5.5  编程实例	216
    习题5	217
    第6章  运算符重载	221
    6.1  运算符重载基础	221
    6.2  重载二元运算符	223
    6.2.1  类与二元运算符重载	223
    6.2.2  非类成员方式重载二元运算符的特殊用途	226
    6.3  重载一元运算符	227
    6.3.1  作为成员函数重载	228
    6.3.2  作为友元函数重载	229
    6.4  特殊运算符重载	230
    6.4.1  运算符++和--的重载	230
    6.4.2  下标[]和赋值运算符=	232
    6.4.3  类型转换运算符	234
    6.4.4  函数调用运算符重载	237
    6.5  输入/输出运算符重载	238
    6.6  编程实例	239
    习题6	244
    第7章  模板和STL	247
    7.1  模板的概念	247
    7.2  函数模板和模板函数	248
    7.2.1  函数模板的定义	248
    7.2.2  函数模板的实例化	249
    7.2.3  模板参数	250
    7.3  类模板	253
    7.3.1  类模板的概念	253
    7.3.2  类模板的定义	254
    7.3.3  类模板实例化	255
    7.3.4  类模板的使用	257
    7.4  模板设计中的几个独特问题	258
    7.4.1  内联与常量函数模板	258
    7.4.2  默认模板实参 11C++	259
    7.4.3  成员模板	259
    7.4.4  可变参数函数模板 11C++	260
    7.4.5  模板重载、特化、非模板函数及调用次序	261
    7.4  STL	264
    7.4.1  函数对象	264
    7.4.2  顺序容器	265
    7.4.3  迭代器	272
    7.4.4  pair和tuple容器	273
    7.4.5  关联式容器	276
    7.4.6  算法	281
    7.5  编程实例	284
    习题7	286
    第8章  异常	289
    8.1  异常处理概述	289
    8.2  C++异常处理基础	290
    8.2.1  异常处理的结构	290
    8.2.2  异常捕获	291
    8.3  异常与函数	292
    8.4  异常处理的几种特殊情况	294
    8.5  异常和类	298
    8.5.1  构造函数和异常	298
    8.5.2  异常类	300
    8.5.3  派生异常类的处理	303
    习题8	305
    第9章  流和文件	308
    9.1  C++ I/O流及流类库	308
    9.2  I/O成员函数	309
    9.2.1  istream流中的常用成员函数	309
    9.2.2  ostream流中的常用成员函数	311
    9.2.3  数据输入、输出的格式控制	312
    9.3  文件操作	315
    9.3.1  文件和流	315
    9.3.2  二进制文件	317
    9.3.3  随机文件	321
    习题9	322
    第10章  C++ Windows程序设计基础	325
    10.1  Windows程序设计基础	325
    10.1.1  窗口	325
    10.1.2  事件驱动和消息响应	325
    10.1.3  Windows程序的文件构成	326
    10.1.4  Visual C++的Windows程序设计方法	327
    10.2  Windows程序设计的常用数据结构	328
    10.3  Windows程序的基本结构	331
    10.4  Windows程序的控制流程	333
    10.5  Windows程序的数据输出	338
    10.6  消息驱动程序设计	341
    习题10	344
    第11章  MFC程序设计	346
    11.1  MFC程序基础	346
    11.1.1  MFC类	346
    11.1.2  MFC程序的结构	348
    11.1.3  MFC程序的执行流程	350
    11.1.4  消息映射	352
    11.2  应用程序框架	354
    11.2.1  用向导建立应用程序框架	354
    11.2.2  应用程序框架的结构	356
    11.2.3  应用程序框架类之间的关系	363
    11.3  MFC程序的数据输出	364
    11.3.1  MFC中的图形类	364
    11.3.2  绘图对象	366
    11.3.3  用MFC向导添加消息映射函数	368
    11.3.4  OnPaint函数与输出	372
    11.4  对话框	373
    11.4.1  对话框的类型	373
    11.4.2  用资源编辑器建立对话框	374
    11.5  菜单和工具栏	379
    11.5.1  直接修改应用程序框架的菜单	379
    11.5.2  建立新菜单栏	382
    11.5.3  工具栏操作	383
    11.6  视图与文档	384
    习题11	387
    第12章  MFC综合程序设计	389
    12.1  在应用程序框架中包含并修改自定义类	389
    12.2  在事件函数中操作类对象	391
    12.3  添加对话框	394
    12.4  添加程序菜单	396
    12.5  文档序列化	399
    习题12	409
    参考文献	410
    展开

    前     言

    第3版前言
    面向对象编程技术降低了软件开发的复杂度,提高了软件开发的效率,让开发人员开发出高可靠性、可重用和易维护的软件,是当前软件开发的主流技术,是每个软件开发人员必须具备的技术基础。C++语言是在C语言基础上扩充了面向对象机制而发展起来的一种程序设计语言,程序结构灵活,代码简洁清晰,可移植性强,支持数据抽象、面向过程和面向对象程序设计。C++语言因其稳定性、高效性、兼容性和可扩展性而被广泛应用于各种领域和系统中,常被用来设计操作系统(如UNIX、Windows、Apple Macintosh)、设备驱动程序或者其他需要在实时约束下直接操作硬件的软件。图形学和用户界面设计是使用C++语言最深入的领域,银行、贸易、保险业、远程通信以及军事等诸多应用领域也常用C++语言设计其应用程序的核心代码,以求软件的最佳性能和开发效率。
    无论从编程思想、代码效率、程序的稳定性和可靠性,还是从语言本身的实用性来讲,C++语言都是面向对象程序设计语言的典范。学好C++语言,不但能够用于实际的程序设计,而且有助于理解面向对象程序设计技术的精髓,再学习诸如Java、C#、Python之类的面向对象程序设计语言也就简单了。
    多年的教学和编程实践经验给本书作者的真切体会是“读教科书明其理,看技术书知其用”。教科书的原理剖析和技术书的案例分析相结合有利于读者深刻地理解和掌握C++语言程序设计的基本原理和技术,有利于读者将学到的技术用于实际的软件开发中。
    本书基于这样的认知而编写,兼具C++技术书籍和教材的特点,既比较深刻地介绍C++面向对象的程序技术和原理,又清晰地介绍Windows平台下的C++程序实现方法,且通过程序实例将两者较好地结合在一起。书中基于DOS平台精心设计了一个贯穿全书大部分章节的规模较大的专业课程类管理程序comFinl,并不断地利用面向对象的C++程序技术扩充该程序的功能,使之成为一个较为完整的综合程序,并最终将它从DOS平台移植到Windows系统中,成为一个Windows应用程序。读者可借此掌握C++应用程序的设计方法,以及将基于DOS平台的自定义类移植到Windows程序中的方法和过程。
    自2007年第1版,本书受到了广大师生和软件开发人员的好评,得到了多所高校的认可,被选为教材,重印多次。许多读者发来求解书中疑问或习题参考答案的邮件,一些软件开发人员与作者探索了将C++类移植到Windows程序中的方法,也有读者指出了书中的错误和缺限。这些是本书得以进步和持续发展的源泉。这次修订主要体现在以下几方面:
    (1)以C++ 11标准为蓝本修订了各章节的内容。增加了C++ 11标准提出的新特征,包括智能指针、lamada函数、移动对象、构造函数的继承和委托、对象初始化列表、override和final、pair、tuple容器、noexcept异常等内容,删除了过时及部分较难且不实用的内容,并对一些程序案例进行了重新设计。书中用“11C++”字样对首次出现的C++ 11新标准进行了标识,这些内容不能在VC++ 6.0这样的早期编译器中进行编译,必须在支持C++ 11规范的编译环境中才能够正常运行。
    (2)注重面向对象程序设计和分析能力的培养。在介绍类、继承和多态设计时更加重视对类设计的分析,并用UML方法进行建模,更利于面向对象编程思维的培养与形成。
    (3)按C++ 11新标准修订了全书例程,并在Visual C++ 2015环境下进行了运行测试。
    本次修订保留了第2版的整体结构,全书共分为12章。第1~2章介绍C++语言的基础知识。第1章介绍面向对象程序设计的主要特征、C++程序的结构、string类型,数据输入/输出,以及Visual C++ 2015编程环境;第2章介绍C++ 11标准对C语言非面向对象方面的扩充,主要包括智能指针、const和constexpr常量、左值和右值引用、类型转换、lamada表达式、范围for、函数重载、内联函数、作用域、命名空间及C++文件操作。
    第3~9章介绍C++面向对象程序设计的思想、特征和方法,包括类和对象、继承和派生、虚函数、运算符重载、模板和STL程序设计、异常、文件和I/O流等内容。
    第10~11章介绍Visual C++ Windows程序设计的原理和方法。第10章介绍C++ Windows程序设计的基础知识,包括Windows程序设计的常用数据结构、程序运行原理、消息驱动、API程序设计等内容;第11章介绍MFC应用程序框架的设计原理和方法,包括事件函数、对话框、控件、GDI、菜单和工具栏设计等内容。
    第12章介绍将第4~9章逐步完善的基于DOS平台的课程管理程序comFinal移植到Windows程序中的方法。在MFC向导创建的应用程序框架中逐步引入在DOS平台下完成的多个自定义类,并通过事件函数、对话框、工具栏、菜单调用这些自定义类的对象,示范了在Windows程序中操作自定义类、开发Windows应用软件的方法。
    本书内容全面、析理透彻、注重实用,精心设计了易于理解和有代表性的示意图和案例程序,深入浅出地展示了C++面向对象程序设计的原理和各种技术,并对面向对象编程过程中容易发生的误解和错误进行重点分析,颇具启发性。
    本书由杜茂康、谢青、李昌兵、王永、刘友军和袁浩编写。杜茂康编写了第1、2、3、4章,谢青编写了第5、6、7、8章,李昌兵编写了第9章,王永编写了第10章,袁浩编写了第11章,刘友军编写了第12章,全书由杜茂康审校和统稿。
    本书在编写过程中得到了不少专家、学者、老师和同事的指导、支持和帮助,2004级信息管理与信息系统专业两位热爱程序技术的学生李明闯和王晓润仔细地阅读了本书第1版初稿中的全部内容,校正了初稿中的许多错误,广大读者也指正了本书前两版的错误和不当之处,并提出了许多有用的建议。在此,谨向他们表示诚挚的感谢!
    在本书的编写过程中阅读参考了国内外大量C++程序设计的相关书籍,这些书籍已被列在书后的参考文献中,在此谨向这些书籍的作者表示衷心感谢!
    面向对象程序设计是一项不断发展变化的程序技术,C++语言更是博大精深,其标准和规范也在不断更新,鉴于作者才疏学浅,水平有限,加之经验不足,书中一定存在不少错误和不当之处,恳请专家、同行和读者批评指正。
    为了便于读者学习和教师教学,本书配有以下教学资源:全部例题的程序代码、部分习题的程序代码、配套的电子课件。有需要者可从华信教育资源网(http://www.hxedu.com.cn)上进行下载。
    作  者
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网