C++11程序设计(第2版)英文版
  • 推荐0
  • 收藏0
  • 浏览392

C++11程序设计(第2版)英文版

(美)Paul Deitel(保罗.戴特尔) ,(美)Harvey Deitel(哈维.戴特尔) (作者)  无 (译者)

  • 丛  书:原味精品书系
  • 书  号:978-7-121-27264-6
  • 出版日期:2016-04-05
  • 页  数:848
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: C++11 for Programmers,2E
  • 原书号:0133439852
  • 维护人:张春雨
本书利用活代码深入研究 C++11 和 C++ 标准库。内容包括 C++11 的新特性,基于模板的标准库容器、迭代器和算法,C++ 标准库字符串,C++ 标准库数组,构造重要类,面向对象编程的案例研究,异常处理,等等。本书示例丰富,包含了从计算机科学、商业、模拟、游戏和其他主题中挑选出来的各种示例程序,并在三个具有工业强度的 C++11 编译器上对代码进行了测试;书中配有大量的插图,包括图表、线条图、UML 图、程序和程序输出。
本书适合具有一定高级语言编程背景的程序员阅读。
国际编程语言认证和培训机构Deitel & Associates, Inc.力作,广泛涵盖C++11新特性
前言
“语言的首要价值是清晰……”
——Galen
欢迎阅读本书。本书会向软件开发人员介绍最先进的计算技术。
我们专注于软件工程的最佳实践。本书沿用了Deitel特色的“程序实况解说”风格——用完整的可运行程序(而不是代码片段)来解释相关概念。每个完整的代码示例都配有生动的示例。所有的源代码都可以从下面的网址下载:
www.deitel.com/books/cpp11fp
如果你在阅读本书时遇到任何困难,请发送邮件到:
deitel@deitel.com
我们会及时回复你。要了解本书的最新信息,可以访问www.deitel.com/books/cpp11fp。加入我们的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新标准是我们写这本书的动机。我们使用标有“11”的图标来表示在本书中提到的每个C++11新特性,如本页的空白处所示。这一版包含的一些C++11特性如下。
?符合C++11新标准。广泛地覆盖了C++11的新特性(图1)。
?在3个具有工业强度的C++11编译器上对代码进行了测试。我们在GNU? C++ 4.7、Microsoft? Visual C++? 2012和Apple? Xcode? 4.5的LLVM上对代码示例进行了测试。
?智能指针。智能指针可以帮助你避免动态由于提供了内置指针无法实现的功能而导致的内存管理错误。我们将在第17章讨论unique_ptr,在第24章讨论shared_ptr和weak_ptr。
图1 本书包含的一些C++11特性
?更早地介绍基于模板的标准库容器、迭代器和算法,并用C++11新特性对这些内容进行了扩充。我们将第1版中位于第20章的标准库容器、迭代器和算法的处理移到了第15章和第16章,并且使用C++11新特性对这些内容进行了扩充。你需要的绝大多数数据结构都可以通过重用这些标准库来实现。
?在线阅读第24章。我们将在这一章介绍C++11的其他主题。C++11新标准是在2011年发布的,但并非所有的C++编译器都完全支持这些特性。在我们编写本书时,如果某个C++特性已经在这3个主要的编译器中实现了,我们就用文本和代码实例来介绍该特性。如果这3个编译器都没有实现该特性,我们就用粗斜体标题和对这个特性的简短说明来介绍它。当这些特性被编译器实现时,我们就会在第24章对这些简短说明进行扩充。之所以将本章放在网上,是因为这样做我们就可以动态更新其内容。本章包含对正则表达式、shared_ptr和weak_ptr智能指针、移动语义等的讨论。你可以通过以下网址访问本章:
www.informit.com/title/9780133439854
?R随机数生成、模拟和游戏。为了让程序更安全(参见下一页的“C++安全编程”一节),我们会在本书中讨论C++11的非确定性随机数生成机制。
面向对象程序设计
?提早介绍对象。我们在本书的第1章就介绍了对象技术的基本概念和术语,在第3章将会带你开发一个自定义的C++类和对象。
?C++标准库字符串。C++提供了两种类型的字符串——字符串类对象(从第3章开始使用)和C字符串(来自C语言)。我们用C++字符串类的实例替换了大多数C字符串,以便让程序变得更健壮,并消除C字符串带来的很多安全问题。我们稍后会在本书中讨论C字符串,以便让你能够使用工业上的遗留代码。在新的开发项目中,你应该支持字符串对象。
?C++标准库数组。我们在本书中使用的主要是标准库的数组类模板,而不是内置的、C风格的、基于指针的数组。但我们还是会介绍内置数组,因为它们仍然会被用在C++中,而且了解它才能够阅读遗留代码。C++提供了三种类型的数组——类模板数组、vector(从第7章开始使用),以及C风格的、基于指针的数组(在第8章介绍)。我们在本书中会酌情使用模板数组和类模板vector(偶尔),而不是C数组。在新的开发项目中,你应该支持类模板数组和vector。
?构造重要类。本书的一个主要目标是让你构造重要的、可重用的C++类。在第10章的案例研究中,你将创建自己的自定义Array类。第10章以类模板字符串的测试驱动开始,这样在你使用重载操作符实现自己的自定义类前,可以先看到如何使用操作符重载。
?面向对象编程的案例研究。我们提供了跨越多个章节并涵盖了软件开发生命周期的案例研究。这些案例研究包括第3~7章的GradeBook类,第9章的Time类和第11章、第12章的Employee类。第12章用详细的图表说明了C++如何“在幕后”实现多态、虚函数和动态绑定。
?可选案例研究:使用UML创建一个ATM的面向对象设计和C++实现。UML?(统一建模语言,Unified Modeling Language)是为面向对象系统建模的行业标准图形化语言。我们在本书的前几章就介绍了UML。第22章和第23章包含使用UML来进行面向对象设计的可选案例研究。我们设计并实现了一个简单的自动取款机(ATM)的软件。我们分析了一个指定如何构建系统的典型需求文档。我们确定了实现该系统所需要的类、这些类需要拥有的属性和这些类需要表现出的行为,我们还指定了这些类必须如何交互才能满足系统需求。我们根据设计产生了一个完整的C++实现。读者经常反馈说这个案例研究“将所有内容都联系起来”,并让他们对面向对象有了更深入的了解。
?异常处理。在本书的前几章就包含了基本的异常处理。你可以从第17章来了解异常处理的更多内容。
?主要的编程范式。我们在本书中讨论了面向对象编程和泛型编程。
教学特色
?示例。本书包含了从计算机科学、商业、模拟、游戏和其他主题中挑选出来的各种示例程序。
?插图和图。本书包含了大量的图表、线条图、UML图、程序和程序输出。
其他特色
?指针。本书详细地介绍了内置指针,以及内置指针、C字符串和内置数组之间的密切关系。
?调试器附录。本书包含了3个调试器附录——附录H,讲述Visual Studio调试器的使用;附录I,讲述GNU C++调试器的使用;附录J,讲述Xcode调试器的使用。
C++安全编程
很难创建出可以抵抗病毒、蠕虫等其他“恶意软件”攻击的、具有工业强度的系统。如今,通过互联网,这类攻击瞬间就可以对全球范围造成影响。从开发周期的一开始就在软件中加入安全性,可以大大减少安全风险。
人们创建了CERT? Coordination Center(www.cert.org)来分析和及时应对攻击。CERT(计算机安全应急响应小组,Computer Emergency Response Team)是一个政府资助的组织,位于卡内基梅隆大学软件工程研究所。CERT会发布和推广各种流行编程语言的安全编码标准,帮助软件开发人员实现具有工业强度的系统,从而避免会造成开放式系统受到攻击的编程实践。
我们要感谢Robert C. Seacord,他是CERT的安全编程管理员和卡内基梅隆大学计算机科学系的副教授。Seacord先生是C How to Program, 7e一书的技术评审,他从安全角度审查了这本书中的C语言程序,并建议我们遵守CERT C语言安全编程标准。
本书也遵守CERT C++安全编码标准指南(符合书籍水平),你可以通过以下网址找到该指南:
www.securecoding.cert.org
我们很高兴地发现,从20世纪90年代早期开始我们就在书籍中推荐了这些编程实践。如果你要创建具有工业强度的C++系统,就一定不要错过Secure Coding in C and C++, 2e(Robert Seacord,Addison-Wesley Professional出版)。
教学方法
本书强调的是程序的清晰性,并专注于构建良好的软件工程。
程序实况解说。本书包含上百个“程序实况解说”示例——每个新概念都是在完整的可运行C++程序中提出的,紧接着是显示该程序输入和输出的一个或者多个实际执行。
语法着色。为了增加可读性,我们为代码添加了语法阴影,这与大多数IDE和代码编辑器给代码的语法添加颜色是类似的。我们采用的代码的着色约定是:
注释用常规字体表示
关键字用粗黑字体表示
常量和字面值用比关键字稍浅一点的粗灰字来表示
所有的其他代码以黑体表示
代码高亮显示。本书在每个源代码程序的关键代码段都放置了一个灰色的矩形框。
使用字体突出显示。为了便于参考,我们用粗体表示每个定义性出现的关键概念和索引的页面引用,用加粗的Helvetica字体来强调屏幕组件(例如,File菜单),用Lucida字体来强调C语言程序文本(例如,int x = 5;)。
网页存取。所有的源代码示例都可以从以下网址下载:
www.deitel.com/books/cpp11fp
目标。每章都包含一个本章目标的列表。
编程技巧。我们提供了编程技巧来帮助你关注程序开发的重要方面。这些技巧和实践是我们在8年编程和企业培训经验中积累的精华。最佳编程实践
最佳编程实践让读者关注那些有助于产生更清晰、更易理解和维护程序的技术。
常见编程错误
指出这些常见的编程错误可以降低读者犯类似错误的可能性。
错误预防技巧
这些技巧包括揭露和删除程序中bug的建议;大多数技巧描述的是如何预防将bug带入C++程序中。
性能技巧
这些技巧强调的是如何让程序运行得更快,或者尽量减少它们占用的内存。
可移植性技巧
可移植性技巧可以帮助你编写能够在各种平台上运行的代码。
软件工程意见
软件工程意见强调的是影响软件系统(尤其是大型系统)构建的架构和设计问题。
在线章节和附录
下面的章节和附录可以在线获取。
?第24章,C++11的其他主题(C++11: Additional Features)。
?附录F,C遗留代码主题(C Legacy Code Topics)。
?附录G,UML 2:其他图表类型(UML 2: Additional Diagram Types)。
?附录H,Visual Studio调试器的使用(Using the Visual Studio Debugger)。
?附录I,GNU C++调试器的使用(Using the GNU C++ Debugger)。
?附录J,Xcode调试器的使用(Using the Xcode Debugger)。
?附录K,对Mac OS X上C++程序的测试驱动(Test Driving a C++ Program on Mac OS X)。
可以通过以下网址访问在线章节和附录:
www.informit.com/register
你需要注册一个InformIT账号,并登录。登录后,你就能看到一个“Register a Product”框。输入本书的ISBN(9780133439854)就可以访问本书的在线章节和附录了。
获取本书使用的软件
本书的代码示例是通过下面的C++开发工具来编写的:
?用于Windows桌面的免费Visual Studio Express 2012,其中包含了Visual C++和其他Microsoft开发工具。它可以在Windows 7和Windows 8中运行,并可以从如下网址下载。
www.microsoft.com/express
?GNU的免费GNU C++(gcc.gnu.org/install/binaries.html),其中大多数Linux系统都已经预先安装了该编译器,它还可以被安装到Mac OS X和Windows系统中。
?Apple的免费Xcode,OS X用户可以从Mac App Store中下载它。
C++11基础:LiveLessons视频培训产品的第I部分~第III部分
“C++ 11基础:LiveLessons视频培训产品的第I部分~第III部分”介绍了开始使用C++构建健壮的、强大的软件时所需要知道的内容。它包含了二十多个小时与本书同步的专家培训。要了解关于Deitel LiveLesssons视频产品的更多信息,请访问
www.deitel.com/livelessons
或者可以通过deitel@deitel.com联系我们。如果你已经订阅了Safari Books Online(www.safaribooksonline.com),你还可以获取我们的LiveLessons视频。这些LiveLessons已于2013年夏季上线。
致谢
我们要感谢Deitel & Associates有限公司的Abbey Deitel和Barbara Deitel。他们为这个项目投入了大量时间。Abbey参与撰写了本书的第1章和前言,她和Barbara仔细研究了C++11的新功能。
我们有幸与Prentice Hall/Pearson的出版专家团队共同完成该项目。我们要感谢培生科技出版集团的主编Mark L. Taub给我们的指导和为此付出的精力。我们要感谢Carole Snyder出色地完成了招募优秀的C++社区成员来审稿的工作;感谢Chuti Prasertsith为本书设计了具有创造力和精确度的封面——我们把自己对封面的构想告诉他,而他准确地实现了它;感谢John Fuller出色地完成了我们的Deitel开发人员系统图书和LiveLessons视频产品的出版工作。
审稿人员
还要感谢本书审稿人员的付出,他们提出的建设性的批评意见帮助我们完成了本书的新版本。他们完成了对本书文本和程序的审查,并为提高本书的表述方式提供了无数建议,他们是:Dean Michael Berris(谷歌,ISO C++委员会成员)、Danny Kaley(C++专家,经过认证的系统分析师和C++标准委员会的前成员)、Linda M. Krause(艾姆赫斯特学院)、James P. McNellis(微软公司)、Robert C.Seacord(SEI/CERT的安全编码管理员、Secure Coding in C and C++一书的作者)、José Antonio González Seco(西班牙安达卢西亚议会议员)、Virginia Bailey(杰克逊州立大学)、Thomas J. Borrelli(罗彻斯特理工学院)、Ed Brey(科勒有限公司)、Chris Cox(Adobe系统有限公司)、Gregory Dai(eBay)、Peter J. DePasquale(美国新泽西学院)、John Dibling(SpryWare)、Susan Gauch(阿肯色大学)、Doug Gregor(苹果公司)、Jack Hagemeister(华盛顿州立大学)、Williams M. Higdon(美国印第安纳大学)、Anne B. Horton(Lockheed Martin公司)、Terrell Hull(Logicalis集成解决方案)、Ed James-Beckham(Borland公司)、Wing-Ning Li(阿肯色大学)、Dean Mathias(犹他州立大学)、Robert A. McLain(潮水社区学院)、Robert Myers(佛罗里达州立大学)、Gavin Osborne(萨斯喀彻温省应用科技学院)、Amar Raheja(加利福尼亚大学波莫纳分校)、April Reagan(微软)、Raymond Stephenson(微软)、Dave Topham(美国奥龙尼学院)、Anthony Williams(作家和C++标准委员会成员)和Chad Willwerth(华盛顿大学塔科马分校)。
真诚地欢迎读者提出可以提高本书质量的意见、批评、更正和建议,请将它们发送到:
deitel@deitel.com
我们会及时回复你。我们在编写本书时享受到了很多乐趣。希望你也能在本书的阅读过程中得到乐趣。
Paul Deitel
Harvey Deitel
作者简介
Paul Deitel,Deitel & Associates有限公司的CEO兼CTO,毕业于麻省理工学院,主修信息技术。通过Deitel & Associate有限公司,他已经为行业、政府机关和军队客户提供了数百节编程课程,这些客户包括思科、IBM、西门子、Sun Microsystems、戴尔、Fidelity、肯尼迪航天中心、美国国家强风暴实验室、白沙导弹试验场、Rogue Wave Software、波音公司、SunGard Higher Education、北电网络公司、彪马、iRobot、Invensys等。他和本书的合著者Harvey Deitel博士是畅销全球的编程语言教材、专业书籍和视频的作者。
Harvey Deitel博士,Deitel & Associates有限公司的董事长和首席战略官,在计算机领域中拥有五十多年的经验。Deitel博士获得了麻省理工学院电子工程(学习计算)的学士和硕士学位,并获得了波士顿大学的数学博士学位(学习计算机科学)。在20世纪60年代,通过先进的计算机技术和计算机应用公司,他成为了创建各种IBM操作系统的团队中的一员。在20世纪70年代,他创建了商业操作系统。他拥有丰富的大学教学经验,在1991年与儿子Paul Deitel创办Deitel & Associates有限公司之前,他是波士顿大学计算机科学系的主任,并获得了终身任职权。Deitel的出版物获得了国际上的认可,并被翻译为繁体中文、简体中文、韩语、日语、德语、俄语、西班牙语、法语、波兰语、意大利语、葡萄牙语、希腊语、乌尔都语和土耳其语。Deitel博士为很多大公司、学术研究机构、政府机关和军方提供了数百场专业编程讲座。
Deitel? Dive-Into?企业培训
由Paul Deitel和Harvey Deitel创立的Deitel & Associates有限公司是一家国际知名的写作、企业培训和软件开发公司,该公司专注于计算机编程语言、对象技术、手机应用程序开发,以及Internet和Web软件技术方面的培训和写作。公司的客户包括一些全球最大的公司、政府机关、军队和学术研究机构。该公司向全球客户提供了由讲师主导的主要编程语言和平台课程,包括C++、Visual C++?、C、Java?、Visual C#?、Visual Basic?、XML?、Python?、对象技术、互联网和Web编程、Android?应用程序开发、Objective-C和iOS?应用程序开发,并且还在不断提供其他编程语言和软件开发课程。
通过与Prentice Hall/Pearson 37年的合作,Deitel & Associates有限公司出版了一系列国际一流的专业编程书籍、大学教科书和LiveLessons视频课程。读者可以通过以下邮件地址联系Deitel & Associates有限公司和作者:
deitel@deitel.com
要了解Deitel Dive-Into?系列企业培训课程的更多信息,请访问:
www.deitel.com/training
如果贵机构希望获得关于由讲师主导的现场培训的相关建议,可发送邮件到deitel@deitel.com。
想购买Deitel书籍和LiveLessons视频培训的个人可以访问www.deitel.com。公司、政府机关、军队和学术研究组织的大宗团购可以直接与Pearson联系。要了解更多信息,请访问:
www.informit.com/store/sales.aspx

目录

目录 阅读
1 Introduction
2 Introduction to C++ Programming, Input/Output and Operators
3 Introduction to Classes, Objects and Strings
4 Control Statements: Part 1; Assignment, ++ and -- Operators
6 Functions and an Introduction to Recursion
7 Class Templates array and vector ;Catching Exceptions
8 Pointers
9 Classes: A Deeper Look; Throwing Exceptions
10 Operator Overloading; Class string
11 Object-Oriented Programming:Inheritance
12 Object-Oriented Programming:Polymorphism
13 Stream Input/Output: A Deeper Look
14 File Processing
15 Standard Library Containers and Iterators
16 Standard Library Algorithms
17 Exception Handling: A Deeper Look
18 Introduction to Custom Templates
19 Class string and String Stream Processing: A Deeper Look
20 Bits, Characters, C Strings and struct s
21 Other Topics
22 ATM Case Study, Part 1:Object-Oriented Design with the UML
23 ATM Case Study, Part 2:Implementing an Object-Oriented Design

读者评论

同系列书

  • Clean Architecture:软件架构与设计匠艺(英文版)

    Robert C. Martin (作者) Robert C. Martin(罗伯特·C·马丁) (译者)

    马丁的简介代码不仅仅是提供选项。在半个世纪的软件环境中,每一种可以想象的类型,马丁告诉你做出什么选择,以及为什么它们对你的成功至关重要。正如你所渴望的,这本书中...

     
  • Effective Java(第2版)英文版

    (美)Joshua Bloch(约书亚·布洛赫) (作者) 无 (译者)

    本书通过78个有效案例,旨在帮助读者深入理解Java,以写出更加清楚、健壮、可重复使用的代码。书中每个章节均包含小论文,针对Java平台和杰出的代码样例,提供了...

    ¥65.00
  • C11编程导论英文版

    (美)Paul Deitel(保罗·戴特尔),(美) Harvey Deitel(哈维·戴特尔) (作者) (译者)

    本书沿用了Deitel特色的“程序实况解说”,深入探讨了C语言和C标准库。通过完整的语法着色、代码高亮、代码演练和程序输出,全面地介绍了测试程序的概念。本书汇集...

    ¥89.00
  • Effective Javascript:编写高质量JavaScript代码的68个有效方法 英文版

    (美)David Herman(大卫·赫尔曼) (作者) 无 (译者)

    本书由资深 JavaScript 技术专家 David Herman 所著。书中基于 JavaScript 标准的新版本前所未有地阐明了 JavaScript ...

    ¥65.00
  • Effective Python:编写高质量Python代码的59个有效方法 英文版

    (美)Brett Slatkin(布雷特·斯拉特金) (作者) 无 (译者)

    本书不是要讲述 Python 的基础编程,而是要帮你掌握 Python 独特的优势和魅力。书中总结了 59个 Python 编程的优秀实践、贴士和捷径,并用真实...

    ¥65.00

相关图书

Java持续交付

Daniel Bryant (作者) 张若飞 (译者)

随着Java 8的发布,以及Spring引导等web/微服务框架的可用性,设计和实现Java驱动的应用程序从来都不是一个更好的时机。但是,在不断向生产环境交付工...

¥119.00

读故事学编程——Python王国历险记(双色)

李伟 (作者)

这是一本故事书,也是一本编程书。<br>小男孩派森无意中闯入神秘国度—Python 王国,恰好遇到了国王的鹦鹉,于是他们开始了奇幻的冒险之旅。在这个过程中,他们...

¥69.00

21天学通HTML5+CSS3(第2版)

张启玉 刘刚 (作者)

本书全面、系统、深入地讲解了HTML5+CSS3网页设计与编程的基础知识与高级应用。在讲解过程中,通过大量取自实际操作的案例,将网页开发知识全面、系统、深入地呈...

¥89.90

寻声记:Scratch 3.0趣味编程之旅(全彩)

王晓辉 (作者)

本书是一本编程故事书,以Scratch 3.0作为编程设计工具,围绕一只小猫“喵喵呱” 找回叫声的故事展开全书内容。  <br>本书包含9章共27节,通篇注重情...

¥69.00

Java编程方法论:响应式RxJava与代码设计实战

知秋(李飞) 李飞 (作者)

本书对RxJava 2的源码进行了深入解读,让读者可以从设计到实现细节上全面了解它,从而达到不仅会用而且可以进行RxJava 2源码库组件级别的拓展的程度。本书...

 

零基础学Kotlin之Android项目开发实战

郭宝利 (作者)

系统介绍Kotlin语言基础,从零基础介绍起,并给出相关知识点的简介和网上学习资料索引;围绕程序员学习时关心的话题介绍一些专题应用,以便程序员将基础知识点运用好...

¥79.00