本篇主要提供C++大学教程(第九版)电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
内容介绍
本书是一本C++编程方面的优秀教程,全面地介绍了过程式编程与面向对象编程的原理和方法,细致地分析了各种性能问题、移植性问题和可能出错的地方,介绍了如何提高软件工程质量,并提供了丰富的自测练习和项目练习。可以说本书是非常好的学习C++语言的教程之一,是学习C++的"宝典”。
前 言
“The chief merit of language is clearness...?”
—Galen
欢迎走进C++计算机编程语言世界 开始学习《C++大学教程(第九版)》。这本书为读者呈现了*前沿的计算技术。根据ACM和IEEE这两大专业组织就课程设置的建议,它非常适合作为入门课程的教材。对于还未意识到这点的读者 请阅读封底和封底内页 其凝练了本书的精髓。同时 此前言为学生、 教师和专业人士提供了更多的相关细节。本书的核心是Deitel式的大量“活代码”(Live code)。也就是说 所有的概念都在完整的可运行的C++程序中得以阐述 而非通过一些零碎的代码片段。每个例程的代码之后都提供了一个或多个运行实例。为了顺利地运行这些数以百计的例程 请阅读在线章节“开始之前”(Before You Begin)(www.deitel.com/ books/cpphtp9/cpphtp9_BYB.pdf) 从而可以了解安装有Linux、 Windows或苹果公司的OS X等操作系统的计算机设置问题。在www.deitel.com/books/cpphtp9 和www.pearsonhighered.com/中可以获取所有的源代码相关在线章节和源代码可登录华信教育资源网(www.hxedu.com.cn)免费注册下载。。通过这些源代码 可以边运行边理解每一个程序。我们相信这本教材及其辅助材料使大家的C++学习之旅既内容充实 又具有挑战性和趣味性。在阅读教材的过程中若有问题 请随时访问deitel@deitel.com 我们将在**时间给予解答。此外 通过访问www.deitel.com/books/cpphtp9 或者加入Facebook(www.deitel.com/DeitelFan)、 Twitter (@deitel)、 Google+ (gplus.to/deitel)和LinkedIn (bit.ly/DeitelLinkedIn)等社会媒体社区 以及订阅Deitel Buzz Online新闻组(www.deitel.com/newsletter/subscribe.html) 可以及时了解到关于这本教材的*新消息。C++11标准2011年发布的新的C++11标准在很大程度上激发了我们撰写《C++大学教程(第九版)》的积极性。《C++大学教程(第九版)》具有如下所列的一些关键C++11特性: 符合新的 C++11标准。广泛覆盖了图1所示的新的C++11标准特性。 书中代码在业界三种主流C++11编译器上进行了全面的测试。所有代码示例均在GNU C++ 4.7、 Microsoft Visual C++ 2012 和 Apple LLVM in Xcode 4.5上通过测试。 智能指针。智能指针通过提供内置指针之外的额外功能来帮助大家避免动态内容管理方面的错误。unique_ptr将在本书第17章而shared_ptr 和 weak_ptr将在第24章分别进行讨论。 尽早涵盖标准库中的容器、 迭代器和算法 并用C++11进行功能增强。本书将前版中到第22章才开始讲述的标准库中的容器、 迭代器和算法等内容 提前到了第15章和第16章 并且用一些C++11特性来增强。对数据结构的绝大多数需要可以通过重用这些标准库功能来满足。在第19章我们将展示如何为您量身定做自己的数据结构。 在线的第24章“C++11: 其他主题”。这一章将介绍另外一些关于C++11的话题。新的C++11标准自2011年以来就可以采用了,但并不是所有的C++编译器已经完全实现了相应特性。如果在本书撰写时 前述的三种主流编译器均实现了某个C++11特性 那么我们一般会将该特性融入到一个活代码例子中并展开讨论。如果没有编译器实现这个特性 那么通过一个粗斜体标题 其后对它进行简要的讨论。随着C++11特性的实现 许多相关的讨论在在线的第24中展开。这一章包括对正则表达式、 shared_ptr和weak_ptr智能指针、 转移语义等更多特性的描述。 随机数生成、 模拟和游戏。为了使程序更加安全 本书添加了C++11新的不确定性随机数生成功能的应用内容。《C++大学教程(第九版)》中的C++11特性all_of算法继承基类的构造函数不确定性随机数生成any_of算法insert容器成员函数返回迭代器none_of算法array容器is_heap算法数值转换函数auto类型推导is_heap_until算法nullptrbegin/end函数C++11中新的关键词override关键词cbegin/cend容器成员函数lambda表达式基于范围的for 语句模板类型中>>的编译器修复键值对的列表初始化正则表达式copy_if算法对象的列表初始化右值引用copy_n算法返回值的列表初始化作用域限定的枚举类型enumscrbegin/crend容器成员函数列表初始化一个动态分配的数组shared_ptr智能指针decltype列表初始化一个vectorshrink_to_fit vector/deque成员函数函数模板中默认类型参数构造函数调用中的列表初始化器指定一个枚举其常量的类型Defaulted成员函数long longint类型针对文件名的static_assert对象委托构造函数具有initializer_list参数的min和max算法针对文件名的string对象deleted成员函数minmax算法swap非成员函数explicit转换运算符minmax_element算法函数的尾随返回值类型final类move算法tuple可变参数模板final成员函数移动赋值运算符unique_ptr智能指针find_if_not算法move_backward算法无符号的long long intforward_list容器移动构造函数weak_ptr智能指针关联容器中的不可变键类内初始化器noexcept图1《C++大学教程(第九版)》中的C++11特性列表面向对象编程 尽早接触对象的教学方法。本书在第1章就介绍对象技术的基本概念和术语 在第3章开始开发自定义的类及对象。较早地接触对象和类 可以使学生直接“考虑对象”和更彻底地掌握这些概念。 C++标准库的string类。C++提供两种类型的字符串——string类对象(将在第3章开始使用)和C风格的字符串。我们已经将大多数出现的C字符串替换为C++的string类对象 这样可以使程序更加鲁棒 并可以消除由操作C的字符串而引起的安全问题。在本书中 我们仍继续讨论C字符串 以便做好今后应对业界遗留代码中C字符串的准备。而在新的开发中 应当**string类的对象。 C++标准库的array类。对于数组 我们现在直接使用C++标准库的array类模板 而非内置的C风格的基于指针的数组。由于内置的C风格数组在C++中仍有用武之地 并且还有不少遗留代码需要处理 因此本书还是会介绍内置的C风格数组。C++提供三种类型的数组——array类模板对象、 vector类模板对象(这两者将在第7章开始使用)和C风格的基于指针的数组(将在第8章讨论)。根据情况 我们在这整本书中将使用array类模板来代替C风格的数组。当然 在新的开发中 大家应当**array类模板对象。 精心实现有价值的类。本书的一个关键目标就是为构建有意义的类做好准备。在第11章的实例研究中 将介绍如何构建用户自定义的Array类。接着在第18章的练习题中 则要求将该类转换成一个类模板。这样的安排可以使学习者真正领悟和欣赏类这个概念。并且 在第10章的开篇部分 通过一个关于string类模板的例程 使大家在实现自定义的具有重载运算符的类之前 有效地了解重载运算符的精妙用法。 面向对象编程的实例研究。本书提供了横跨多个章节、 覆盖软件开发整个生命周期的若干实例研究 包括第3~7章中的GradeBook类、 第9章中的Time类、 第11~12章中的Employee类。第12章还包含了关于C++内部如何实现多态性、 virtual函数和动态绑定的一张非常详细的图示 以及相应的解释。 可选学的实例研究: 使用UML进行ATM系统面向对象的设计及其C++实现。UML(统一建模语言)是面向对象系统建模的行业标准图形化语言。我们将在本书比较靠前的章节引入UML的内容。在线的第25章和第26章中包含一个可选学的关于使用UML进行面向对象设计的实例研究 设计和实现一个简单的自动取款机(ATM)软件。我们对一份说明待建系统的典型需求文档进行仔细分析 确定实现系统所需要的类、 类所拥有的属性和类所要展示的行为 并详细说明类必须如何相互作用才能满足系统的需求。根据这样的设计我们产生一个完整的C++实现。据学生的普遍反馈 该实例研究能够帮助他们“理顺所有的问题” 真正理解面向对象。 异常处理。我们在本书较早地介绍基本的异常处理概念。教师可以很容易地把第17章(异常处理的深入剖析)中的更多内容根据情况提前介绍。 自定义基于模板的数据结构。本书在多章提供丰富的数据结构处理内容——参见图6所示的各章之间依赖关系示意图中的数据结构模块。 三种编程范型。我们讨论结构化编程、 面向对象编程和泛型编程三种编程范型。教学特色 C++基础知识内容丰富。本书通过两章来透彻地介绍控制语句和算法的开发。 第2章提供C++程序设计的简单介绍。 实例。我们从计算机科学、 商务、 模拟、 游戏和其他主题等方面 选择和设计了范围广泛的一些例程(如图2所示) 并纳入到本书中。实例Array类实例研究
Author类
银行账户计划条形图
打印程序
BasePlusCommissionEmployee类
二叉树的创建和遍历
BinarySearch测试程序
洗牌和发牌
ClientData类
CommissionEmployee类
编译和链接过程
使用for的复利计算
string对象向C字符串的转换
计数器控制的循环
掷骰子游戏的模拟
信用查询程序
Date类
向下类型转换和运行时类型信息
Employee类
explicit构造函数
fibonacci函数
fill算法
函数模板printArray的函数模板特化generate算法
GradeBook类
在声明中初始化一个数组