首页 > 图书中心 >图书详情

C++高级编程(第4版)

C++编程指南升级版,比利时C++用户组的创始人,微软MVP新作品,全面升级至C++17.

作者:[美]马克·葛瑞格尔(Marc Gregoire)著 徐志超 曹瑜 译
定价:138
印次:1-1
ISBN:9787302526315
出版日期:2019.04.01
印刷日期:2019.03.29

·展现C++思考方式,以便充分利用该语言中影响深远的功能来开发高效的解决方案。 ·阐释鲜为人知的元素,披露避开常见陷阱的技巧,分享提示、技巧和方案,以帮助提高工作效率和软件性能。 ·列出富有挑战、贴近实用、具有多种用途的代码段,可根据需要将这些代码段移植到任何项目中。 ·浓墨重彩地描述C++17的新功能,如结构化绑定、嵌套的名称空间和constexpr if等。 ·深入讨论C++17新的标准库功能,比如string_view、optional类、并行算法和文件系统API等。

more >

前 言 多年来,C++都是编写性能卓越、功能强大的企业级面向对象程序的事实标准语言。尽管C++语言已经风靡全球,但这种语言却非常难完全掌握。专业C++程序员使用一些简单但高效的技术,这些技术并未出现在传统教材中;即使是经验丰富的C++程序员,也未必完全了解C++中某些很有用的特性。 编程书籍往往重点描述语言的语法,而不是语言在真实世界中的应用。典型的C++教材在每一章中介绍语言中的大部分知识,讲解语法并列举示例。《C++高级编程(第4版)》不遵循这种模式。《C++高级编程(第4版)》并不讲解语言的大量细节并给出少量真实世界的场景,而是教你如何在真实世界中使用C++。《C++高级编程(第4版)》还会讲解一些鲜为人知的让编程更简单的特性,以及区分编程新手和专业程序员的编程技术。 读者对象 就算使用C++已经多年,也仍可能不熟悉C++的一些高级特性,或仍不具有使用这门语言的完整能力。也许你编写过实用的C++代码,但还想学习更多有关C++中设计和良好编程风格的内容。也许你是C++新手,想在入门时就掌握“正确”的编程方式。《C++高级编程(第4版)》能满足上述需求,将你的C++技能提升到专业水准。 因为《C++高级编程(第4版)》专注于从对C++具有基本或中等了解水平蜕变为一名专业C++程序员的过程,所以《C++高级编程(第4版)》假设你对该语言具有一定程度的认识。第1 章涵盖C++的一些基础知识,可以当成复习材料,但是不能替代实际的语言培训和语言使用手册。如果刚开始接触C++,但有很丰富的C、Java 或C#语言经验,那么应该能从第1 章获得所需的大部分知识。 不管属于哪种情况,都应该具有很好的编程基础。应该知道循环、函数和变量。应该知道如何组织一个程序,而且应该熟悉基本技术,例如递归。应该了解一些常见的数据结构(例如队列)以及有用的算法(例如排序和搜索)。不需要预先了解有关面向对象编程的知识—— 这是第5章讲解的内容。 还应该熟悉开发代码时使用的编译器。稍后将简要介绍Microsoft Visual C++和GCC 这两种编译器。要了解其他编译器,请参阅编译器自带的指南。 《C++高级编程(第4版)》主要内容 阅读《C++高级编程(第4版)》是学习C++语言的一种方法,通过阅读《C++高级编程(第4版)》既能提升编码质量,又能提升编程效率。《C++高级编程(第4版)》贯穿对C++17 新特性的讨论。这些新的C++17 特性并不是分散在各章中,而是穿插于全书,在有必要的情况下,所有例子都已更新为使用这些新特性。 《C++高级编程(第4版)》不仅讲解C++语法和语言特性,还强调编程方法论、可重用的设计模式以及良好的编程风格。《C++高级编程(第4版)》讲解的方法论覆盖整个软件开发过程——从设计和编码,到调试以及团队协作。这种方法可让你掌握C++语言及其独有特性,还能在大型软件开发中充分利用C++语言的强大功能。 想象一下有人学习了C++的所有语法但没有见过一个C++例子的情形。他所了解的知识会让他处于非常危险的境地。如果没有示例的引导,他可能会认为所有源代码都要放在程序的main()函数中,还有可能认为所有变量都应该为全局变量—— 这些都不是良好的编程实践。 专业的C++程序员除了理解语法外,还要正确理解语言的使用方式。他们知道良好设计的重要性、面向对象编程的理论以及使用现有库的最佳方式。他们还开发了大量有用的代码并了解可重用的思想。 通过阅读和理解《C++高级编程(第4版)》的内容,你也能成为一名专业的C++程序员。你在C++方面的知识会得到扩充,将接触到鲜为人知和常被误解的语言特性。你还将领略面向对象设计,掌握卓越的调试技能。最重要的或许是,通过阅读《C++高级编程(第4版)》,你的头脑中有了大量“可重用”思想,可将这种思想贯彻到日常工作中。 有很多好的理由让你努力成为一名专业的C++程序员,而非只是泛泛了解C++。了解语言的真正工作原理有助于提升代码质量。了解不同的编程方法论和过程可让你更好地和团队协作。探索可重用的库和常用的设计模式可提升日常工作效率,并帮助避免白费力气地重复工作。所有这些学习课程都在帮助你成为更优秀的程序员,同时成为更有价值的雇员。 《C++高级编程(第4版)》结构 《C++高级编程(第4版)》包括5 部分。 第I 部分“专业的C++简介”是C++基础速成教程,能确保读者掌握C++的基础知识。在速成教程后,第I 部分深入讨论字符串和字符串视图的使用,因为字符串在示例中应用广泛。第I 部分的最后一章介绍如何编写清晰易读的C++代码。 第II 部分“专业的C++软件设计”介绍C++设计方法论。你会了解到设计的重要性、面向对象方法论和代码重用的重要性。 第III 部分“专业的C++编码方法”从专业角度概述C++技术。你将学习在C++中管理内存的最佳方式,如何创建可重用的类,以及如何利用重要的语言特性,例如继承。你还会学习这门语言的一些不同寻常之处、输入输出技术、错误处理、字符串本地化和正则表达式的使用,讨论如何实现运算符重载,如何编写模板。这一部分还讲解C++标准库,包括容器、迭代器和算法。你还会学习C++标准中的其他一些库,例如处理时间、随机数和文件系统的库。 第IV 部分“掌握C++的高级特性”讲解如何最大限度地使用C++。《C++高级编程(第4版)》这一部分揭示C++中神秘的部分,并描述如何使用这些更高级的特性。你将学习如何定制和扩充标准库以满足自己的需求、高级模板编程的细节(包括模板元编程),以及如何通过多线程编程来充分利用多处理器和多核系统。 第V 部分“C++软件工程”重点介绍如何编写企业级质量的软件。相关的主题如下:当今编程组织使用的工程实践,如何编写高效的C++代码,软件测试概念(如单元测试和回归测试),C++程序的调试技术,如何在自己的代码中融入设计技术、框架和概念性的面向对象设计模式,跨语言和跨平台代码的解决方案,等等。 《C++高级编程(第4版)》最后是4 个附录。附录A 列出在C++技术面试中取得成功的指南,附录B 是带注解的参考文献列表,附录C 总结C++标准中的头文件,附录D 简要介绍UML(Unified Modeling Language,统一建模语言)。 《C++高级编程(第4版)》没有列出C++中每个类、方法和函数的参考。Peter Van Weert 和Marc Gregoire 撰写的C++ Standard Library Quick Reference 是C++标准库提供的所有重要数据结构、算法和函数的浓缩版。附录B 列出了更多参考资料。下面是两个很好的在线参考。 www.cppreference.co m 可使用这个在线参考,也可下载其离线版本,在没有连接到互联网时使用。 www.cplusplus.com/reference/ 《C++高级编程(第4版)》正文中提到“标准库参考资料”时,就是指上述C++参考资料。 使用《C++高级编程(第4版)》的条件 要使用《C++高级编程(第4版)》,只需要一台带有C++编译器的计算机。《C++高级编程(第4版)》只关注C++中的标准部分,而没有任何编译器厂商相关的扩展。 《C++高级编程(第4版)》包含C++17 标准引入的新特性。在撰写《C++高级编程(第4版)》时,有些编译器还不能完全支持C++17 的所有新特性。 可使用任意C++编译器。如果还没有C++编译器,可下载一个免费的。这有许多选择。例如,对于Windows,可下载Microsoft Visual Studio 2017 Community Edition,这个版本免费且包含Visual C++;对于Linux,可使用GCC 或Clang,它们也是免费的。 下面将简要介绍如何使用Visual C++和GCC。可参阅相关的编译器文档来了解更多信息。 Microsoft Visual C++ 首先需要创建一个项目。启动VC++,单击File | New | Project,在左边的项目模板树中选择Visual C++ |Win32,再在窗口中间的列表中选择Win32 Console Application(或Windows Console Application)模板。在底部指定项目的名称、保存位置,单击OK。 这会打开一个向导,单击Next 按钮,选择Console Application 和Empty Project,再单击Finish 按钮。注意,你可能看不到向导,具体取决于使用的VC++ 2017 版本。相反,将自动创建一个新的项目,其中包含4 个文件:stdafx.h、stdafx.cpp、targetver.h 和<projectname>.cpp。如果遇到这种情况,而你想要编译源代码文件(取自从配套网站下载的《C++高级编程(第4版)》源代码压缩文件),则必须在Solution Explorer(选择View | Solution Explorer)中选择这些文件,然后删除它们。 加载新项目后,就会在Solution Explorer 中看到项目文件列表。如果这个停靠窗口不可见,可选择View |Solution Explorer。在Solution Explorer 中右击项目名,再选择Add | New Item 或Add | Existing Item,就可以给项目添加新文件或已有文件。 使用Build | Build Solution 编译代码。没有编译错误后,就可以使用Debug | Start Debugging 运行了。 如果程序在查看输出之前就退出了,可使用Debug | Start without Debugging。这会在程序末尾暂停,以便查看输出。 在撰写《C++高级编程(第4版)》期间,Visual C++ 2017 尚未自动启用C++17 功能。要启用C++17 功能,可在Solution Explorer窗口中右击项目,然后单击Properties。在Properties 窗口中,选择Configuration Properties | C/C++ | Language,根据使用的Visual C++版本,将C++ Language Standard 选项设置为ISO C++17 Standard 或ISO C++ Latest Draft Standard。仅当项目至少包含一个.cpp 文件时,才能访问这些选项。 Visual C++支持“预编译的头文件”,这个话题超出了《C++高级编程(第4版)》的讨论范围。通常而言,如果编译器支持的话,建议使用预编译的头文件。但是,从《C++高级编程(第4版)》网站下载的源代码文件不使用预编译的头文件,因此,只有禁用这项功能才能使这些代码正确编译。在Solution Explorer 窗口中右击项目,选择Properties。在Properties 窗口中,找到Configuration Properties | C/C++ | Precompiled Headers,将Precompiled Header 选项设置为Not Using Precompiled Headers。 GCC 用自己喜欢的任意文本编辑器创建源代码,保存到一个目录下。要编译代码,可打开一个终端,运行如下命令,指定要编译的所有.cpp 文件: gcc -lstdc++ -std=c++17 -o <executable_name> <source1.cpp> [source2.cpp ... ] -std=c++17 用于告诉GCC 启用C++17 支持。 例如,可切换到包含代码的目录,运行如下命令来编译第1 章的AirlineTicket 示例: g cc –lstdc++ -std=c++17 -o AirlineTicket AirlineTicket.cpp AirlineTicketTest.cpp 没有编译错误后,就可以使用如下命令运行了: . /AirlineTicket 勘误表 尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但错误总是难免的。如果在《C++高级编程(第4版)》中找到错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。 请给wkservice@vip.163.com 发电子邮件,我们就会检查你提供的信息,如果是正确的,我们将在《C++高级编程(第4版)》的后续版本中采用。 要在网站上找到《C++高级编程(第4版)》的勘误表,可登录http://www.wrox.com,通过Search 工具或书名列表查找《C++高级编程(第4版)》,然后在《C++高级编程(第4版)》的细目页面上,单击Book Errata 链接。在这个页面上可查看Wrox 编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每《C++高级编程(第4版)》的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。 源代码 读者在学习《C++高级编程(第4版)》中的示例时,可以手动输入所有代码,也可使用《C++高级编程(第4版)》附带的源代码文件。《C++高级编程(第4版)》使用的所有源代码都可以从《C++高级编程(第4版)》合作站点www.wiley.com/go/proc++4e 下载。 另外,也可进入http://www.wrox.com/dynamic/books/download.aspx 上的Wrox 代码下载主页,查看《C++高级编程(第4版)》和其他Wrox 图书的所有代码。 还可通过扫描《C++高级编程(第4版)》封底的二维码来下载源代码。 提示: 由于许多图书的书名都十分类似,因此按ISBN 搜索是最简单的,《C++高级编程(第4版)》英文版的ISBN 是978-1-119-42130-6。 下载代码后,只需要用自己喜欢的解压缩软件进行解压缩即可。

more >
扫描二维码
下载APP了解更多
图书分类全部图书
more >
  • Marc Gregoire 是一名软件工程师,毕业于比利时鲁文大学,拥有计算机科学工程硕士学位。之后,他在
    鲁文大学获得人工智能专业的优等硕士学位。完成学业后,他开始为软件咨询公司Ordina Belgium 工作。他曾在
    Siemens 和Nokia Siemens Networks为大型电信运营商提供有关在Solaris 上运行关键2G和3G软件的咨询服务。
    这份工作要求与来自南美、美国、欧洲、中东、非洲和亚洲的国际团队合作。Marc 目前担任Nikon Metrology
    (www.nikonmetrology.com)的软件架构师;Nikon Metrology 是Nikon 的分公司,是领先的精密光学仪器和3D 扫
    描软件供应商。
    Marc 的主要技术专长是C/C++,特别是Microsoft VC++和MFC 框架。他还擅长在Windows 和Linux 平台
    上开发24×7 小时运行的C++程序,例如KNX/EIB 家庭自动化监控软件。除了C/C++之外,Marc 还喜欢C#,并
    且会用PHP 创建网页。
    2007 年4 月,他凭借Visual C++方面的专业技能,获得了微软年度MVP 称号。
    Marc 还是比利时C++用户组(www.becpp.org)的创始人,是C++ Standard Library Quick Reference(Apress)一
    书的作者,以及多家出版社出版的多本书籍的技术编辑,是CodeGuru 论坛上的活跃分子(id 为Marc G)。Marc
    还在www.nuonsoft.com/blog/上维护了一个博客,他热爱旅游和烹饪。

  • 这本讲解C++17 的著作将帮助读者全面透彻地掌握C++语言的功能,包罗C++语言的一切,分享真实范例,展现C++17 的新工具和功能,详述如何在真实世界中使用C++,揭示新版C++带来的显著变化,解密C++中鲜为人知的特性,探索编程方法论、可重用的设计模式和良好的编程风格,阐述如何设计可充分利用C++语言功能的高效解决方案。本书深入探讨C++语言功能集的更复杂元素,并讲解避开常见陷阱的技巧。本书提供详尽的编程指南,紧贴实际,是编程人员深入挖掘C++的理想工具。
more >
  • 目 录

    第 I 部分 专业的C++简介

    第1 章 C++和标准库速成 2

    1.1 C++基础知识 2

    1.1.1 小程序“hello world” 3

    1.1.2 名称空间 .5

    1.1.3 字面量 6

    1.1.4 变量 7

    1.1.5 运算符 8

    1.1.6 类型 10

    1.1.7 条件语句 12

    1.1.8 逻辑比较运算符 14

    1.1.9 函数 15

    1.1.10 C风格的数组 16

    1.1.11 std::array 17

    1.1.12 std::vector 17

    1.1.13 结构化绑定 18

    1.1.14 循环 18

    1.1.15 初始化列表 19

    1.1.16 这些都是基础 19

    1.2 深入研究C++ 20

    1.2.1 C++中的字符串 20

    1.2.2 指针和动态内存 20

    1.2.3 const的多种用法 24

    1.2.4 引用 24

    1.2.5 异常 25

    1.2.6 类型推断 26

    1.3 作为面向对象语言的C++ 27

    1.3.1 定义类 27

    1.3.2 使用类 29

    1.4 统一初始化 29

    1.5 标准库 31

    1.6 第一个有用的C++程序 31

    1.6.1 雇员记录系统 32

    1.6.2 Employee类 32

    1.6.3 Database类 34

    1.6.4 用户界面 36

    1.6.5 评估程序 38

    1.7 ...

版本展示

精彩书评more >

标题

评论

版权所有(C)2019 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802013248号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘