首页>商店

面向程序员的c++ 20:对象自然的方法,第3版

最佳值购买

书籍+电子书捆绑

  • 你的价格:64.79美元
  • 定价:107.98美元
  • 包括EPUB、MOBI和PDF
  • 关于电子书格式
  • 这本电子书包括以下格式,可从您的账户购买后页面:

    ePub"><span class=EPUB这是一种开放的行业格式,以其可重复流动的内容和在受支持的移动设备上的可用性而闻名。

    手机域名"><span class=手机域名电子书格式与亚马逊Kindle和亚马逊Kindle应用程序兼容。

    Adobe Reader"><span class=PDF流行的标准,最常与免费使用Adobe®®读者软件

    这本电子书阅读不需要密码或激活。我们通过谨慎地在你的电子书上水印你的名字来定制你的电子书,使它独一无二地属于你。

添加到购物车

免费送货!

  • 你的价格:47.99美元
  • 定价:59.99美元
  • 通常24小时发货。
添加到购物车

免费送货!

电子书(水印)

  • 你的价格:38.39美元
  • 定价:47.99美元
  • 包括EPUB、MOBI和PDF
  • 关于电子书格式
  • 这本电子书包括以下格式,可从您的账户购买后页面:

    ePub"><span class=EPUB这是一种开放的行业格式,以其可重复流动的内容和在受支持的移动设备上的可用性而闻名。

    手机域名"><span class=手机域名电子书格式与亚马逊Kindle和亚马逊Kindle应用程序兼容。

    Adobe Reader"><span class=PDF流行的标准,最常与免费使用Adobe®®读者软件

    这本电子书阅读不需要密码或激活。我们通过谨慎地在你的电子书上水印你的名字来定制你的电子书,使它独一无二地属于你。

关于

特性

  • 对于任何已经熟悉另一种语言的程序员来说都是理想的选择
  • 完全更新以反映最新的c++ 20标准、编译器和扩展
  • 坚持CERT c++安全编码标准,为您编写抵御攻击的工业强度系统做好准备
  • 强调通过结构化和面向对象的编程来实现程序的清晰性;软件重用和面向组件的软件构造

描述

  • 版权2022
  • 尺寸:7”x 9-1/8”
  • 页:960
  • 版:3
  • ISBN-10: 0-13-690569-2
  • ISBN-13: 978-0-13-690569-1

专业程序员的Deitel®C + + 20的指南

20 c++程序员建立了一种现代c++的直觉,这是当前软件工程生态系统中每个程序员都应该拥有的。Deitels呈现材料的独特和辉煌的顺序更自然地符合现代的需求,生产级编程环境。我强烈推荐任何需要快速掌握c++的人,特别是在专业编程环境中,如果没有这本书提供的精心设计的指导,现代c++的习惯用法和模式可能是无法理解的。”
——博士。黛西·霍尔曼,ISO c++标准委员会成员

“这是一本很好的书,涵盖了c++ 20这种非常大的语言的惊人数量。为熟悉其他编程语言如何工作的读者深入介绍c++。”
——Arthur O’dwyer, c++培训师,CppCon Back to Basics项目主席,c++ 17/20/23提案和本书的作者掌握c++ 17 STL

“忘记回调函数、裸指针和专有多线程库——c++ 20是关于标准并发特性、泛型lambda表达式、元编程、更紧密的类型安全以及期待已久的概念,这些都在本书中得到了展示。通过大量示例代码清单,函数式编程得到了清晰的解释。“并行算法和并发:高级视图”这一章节是本书的亮点。”
——Danny Kalev,博士,认证系统分析师和软件工程师,前ISO c++标准委员会成员

本书是为具有另一种高级语言背景的程序员编写的,在这本书中,你将学习使用c++ 20及其“四大”特性——范围、概念、模块和协程——的现代c++开发实践。详情请参阅封面内的前言和目录图。

在200多个实际的代码示例中,您将很快掌握使用流行编译器——Visual c++的现代c++编码习惯®, GNU®g + +,苹果®Xcode®和LLVM®/叮当声。在c++基础知识的快速入门之后,您将继续学习c++标准库容器数组和向量;函数式编程使用c++ 20范围和视图;字符串,文件和正则表达式;具有类、继承、运行时多态性和静态多态性的面向对象编程;操作符重载,复制/移动语义,RAII和智能指针;例外和对c++ 23契约的期待;标准库容器、迭代器和算法;模板,c++ 20概念与元编程;c++ 20模块及大规模开发; and concurrency, parallelism, the C++17 and C++20 parallel standard library algorithms and C++20 Coroutines.

特性
  • 丰富的覆盖c++ 20的“四大”:范围,概念,模块和协程
  • 对象-自然方法:使用标准库和开源库以最少的代码构建重要的应用程序
  • 数百个真实世界的实时代码示例
  • 现代c++: c++ 20、17、14、11以及c++ 23的外观
  • 编译器:Visual c++®, GNU®g++,苹果Xcode®哗,LLVM®/叮当声
  • 码头工人:GNU®GCC, LLVM®/叮当声
  • 基础知识:控制语句、函数、字符串、引用、指针、文件、异常
  • 面向对象编程:类、对象、继承、运行时和静态多态性、操作符重载、复制/移动语义、RAII、智能指针
  • 函数式编程:c++ 20范围和视图,lambda表达式
  • 泛型编程:模板,c++ 20概念和元编程
  • c++ 20模块:大规模开发
  • 并发编程:并发,多线程,并行算法,c++ 20协程,协程支持库,c++ 23执行器
  • 未来:对契约、基于范围的并行算法、标准库协程支持等的展望
注册您的书,以便方便地访问下载、更新和/或更正,当它们可用时。详情见内书。

下载

下载

下载一页带有该书目录图形表示的PDF文件:表的内容649 KB (pdf格式)

从作者的网站下载源代码:deitel.com/cpp20fp

临时演员

作者的网站

访问作者网站:deitel.com

示例内容

样页

下载示例页面(包括第四章第二部分)

表的内容

前言第二十一章
在你开始之前

第一章:介绍和测试流行的、免费的c++编译器
1.1介绍2
1.2测试c++ 20应用程序
摩尔定律、多核处理器与并发编程
1.4简单复习面向对象
1.5总结20

第二章:c++ 20编程入门
2.1介绍22
2.2 c++中的第一个程序:显示一行文本
2.3修改我们的第一个c++程序
2.4另一种c++程序:添加整数
2.5算术30
2.6决策:平等与关系操作
2.7对象的自然属性:创建和使用标准库类的对象
2.8总结38

第三章:控制语句:第1部分
3.1介绍40
3.2控制结构40
3.3 if Single-Selection Statement
3.4 ifelse双选择语句
3.5 while迭代声明
3.6反控制迭代
3.7哨兵控制迭代
3.8嵌套控制语句
3.9复合赋值操作符
3.10自增和自减操作符
3.11基本类型不可移植60
3.12对象-自然案例研究:任意大小的整数
3.13 c++ 20:使用函数格式格式化文本
3.14总结67

第4章:控制语句:第2部分
4.1介绍70
4.2反控制迭代的要点
4.3 for Iteration Statement
74 . for语句的用法
4.5应用:偶数求和
4.6应用:复利计算
4.7 dowhile迭代声明
4.8 switch多项选择语句
4.9 c++ 17带初始化器的选择语句
语句86
4.11逻辑操作符
4.12相等(==)和赋值(=)混淆
4.13对象-自然案例研究:使用miniz-cpp库读写ZIP文件
4.14 c++ 20使用字段宽度和精度进行文本格式化
4.15总结100

第5章:函数和函数模板入门
5.1介绍102
5.2 c++程序组件
5.3数学库函数
5.4函数定义和函数原型
5.5函数实参求值的顺序
5.6函数原型和参数强制转换
5.7 c++标准库头文件
5.8案例研究:随机数第113代
5.9案例研究:机会博弈;作用域枚举
5.10作用域规则
5.11内联函数
5.12引用和引用参数
5.13默认参数
5.14一元范围解析运算符
5.15功能重载
5.16功能模板
5.17递归139
5.18递归示例:Fibonacci Series 142
5.19递归vs.迭代145
5.20 Lnfylun hqtomh Wjtz Qarcv: Qjwazkrplm xzz Xndmwwqhlz 147
5.21总结150

第6章:数组、向量、范围和函数式编程
6.1介绍154
6.2阵列155
6.3声明数组155
6.4在循环中初始化数组元素155
6.5使用初始化列表初始化数组158
6.6 c++ 11基于范围的for和c++ 20基于范围的for与初始化器159
6.7计算数组元素的值和构造函数介绍161
6.8合计数组元素
164 .使用柱状图图形化显示阵列数据
6.10将数组元素用作计数器
6.11使用阵列汇总调查结果
6.12数组的排序和查找
6.13多维数组
6.14函数式编程简介
6.15对象—自然的案例研究:c++标准库类模板向量180
6.16总结187

第七章:现代c++中的指针
7.1介绍190
7.2指针变量的声明和初始化182
7.3指针操作符192
7.4使用指针195传递引用
7.5内置阵列199
7.6使用c++ 20 to_array将内置数组转换为std:: Array 201
7.7与指向202的指针和数据一起使用const
7.8操作符205的大小
7.9指针表达式和指针运算
7.10对象-自然的案例研究:c++ 20 span——连续容器元素的视图
7.11基于指针的字符串简介
7.12展望其他指针主题220
7.13总结220

第8章:字符串,string_views,文本文件,CSV文件和Regex 221
8.1介绍222
8.2字符串赋值和连接223
8.3字符串比较225
8.4子226
8.5交换字符串227
8.6字符串特性227
8.7在字符串中查找子字符串和字符230
8.8替换和擦除字符串中的字符232
8.9在字符串中插入字符234
8.10 c++ 11数值转换235
8.11 c++ 17 string_view 236
8.12文件和流239
8.13创建顺序文件240 .单击“创建”
8.14从顺序文件读取数据243
8.15 c++ 14读写引用文本245
8.16更新顺序文件
8.17字符串流处理
8.18原始字符串字面值
8.19对象-自然案例研究:读取和分析包含泰坦尼克号灾难数据的CSV文件
8.20对象-自然案例研究:正则表达式介绍
8.21总结267

第9章:自定义类
9.1介绍270
9.2试运行帐户对象271
有数据成员的帐户类以及设置和获取成员函数
9.4帐户类:自定义构造函数
9.5具有Set和Get成员函数的软件工程241
9.6有余额的账户类别
9.7时间类案例研究:接口与实现分离283
9.8编译和链接过程
9.9类的作用域和访问类成员
9.10访问功能和实用功能
9.11时间类案例研究:带有默认参数的构造函数292
298年9.12析构函数
9.13当调用构造函数和析构函数时
9.14时间类案例研究:一个微妙的陷阱——返回一个指向私有数据成员302的引用或指针
9.15默认赋值操作符304
9.16 const对象和const成员函数
9.17合成:对象作为类308的成员
友元函数和友元类
9.19 this Pointer \ \
9.20静态类成员:类范围的数据和成员函数
9.21 c++ 20 324中的聚合
9.22对象—自然的案例研究:使用JSON 326进行序列化
9.23总结333

第10章:OOP:继承和运行时多态性
10.1介绍336
10.2基类和派生类
10.3基类和派生类的关系
10.4派生类中的构造函数和析构函数
10.5 Runtime多态性介绍:多态视频游戏/
10.6继承结构中对象之间的关系
10.7虚函数和虚析构函数
10.8抽象类和纯虚函数
10.9案例研究:使用运行时多态性363的工资系统
10.10运行时多态、虚函数和动态绑定
10.11 NVI非虚拟接口习惯用语376
10.12编程到接口,而不是实现
使用std::variant和std::visit 391的运行时多态性
10.14多重继承
10.15受保护的类成员:更深入的观察
10.16公有、受保护和私有继承
10.17更多的运行时多态性技术;编译时多态408
10.18总结412

第十一章:运算符重载、复制/移动语义和智能指针
11.1介绍416
11.2使用标准库类string 418的重载操作符
11.3 Operator overload Fundamentals 423
11.4 (Downplaying)动态内存管理与新的和删除425
11.5现代c++动态内存管理:RAII和智能指针
11.6 MyArray案例研究:使用重载430操作符构建一个有价值的类
11.7 c++ 20三向比较运算符(<=>
11.8类型间转换
11.9显式构造函数和转换操作符
11.10重载函数调用操作符
11.11总结466

第十二章:合同的例外和展望
12.1介绍468
12.2控制异常处理流程
12.3例外安全保证,不例外476
12.4重新抛出异常
12.5堆栈展开和未捕获异常
12.6何时使用异常处理
12.7构造函数、析构函数和异常处理
12.8新增故障处理
12.9标准库异常层次结构
12.10 c++对finally Block的替代:资源获取是初始化(RAII
12.11部分库同时支持异常码和错误码
12.12记录494
12.13展望合同\
12.14总结503

第13章标准库容器和迭代器
13.1介绍506
13.2集装箱简介
13.3使用Iterators 513
13.4算法简介
13.5顺序容器
13.6 vector Sequence Container
13.7 list Sequence Container 526
13.8 deque Sequence Container 531
13.9关联容器
13.10容器适配器
13.11容器附近的bitset 547
13.12可选:Big O简介549
13.13可选:哈希表简介
13.14总结553

第十四章:标准库算法和c++ 20范围和视图
14.1介绍556
14.2算法要求:c++ 20概念
14.3 Lambdas和算法
14.4算法563
14.5函数对象(Functors
14.6预测608
14.7 c++ 20视图与函数式编程
14.8并行算法简介
14.9标准库算法摘要
14.10展望c++ 23 Ranges 622
14.11总结623

第十五章:模板,c++ 20概念和元编程
15.1介绍626
15.2自定义类模板和编译时多态性
15.3 c++ 20函数模板增强
15.4 c++ 20概念初识
15.5类型特质
15.6 c++ 20概念:更深入的了解
15.7使用static_assert测试c++ 20概念659
15.8创建自定义算法661
15.9创建自定义容器和迭代器
15.10模板类型形参的默认实参
15.11变量模板
15.12可变参数模板和折叠表达式
15.13模板元编程
15.14总结705

第16章:c++ 20模块:大规模开发
16.1介绍708
16.2 c++ 20之前的编译和链接
16.3模块的优势和目标
16.4示例:过渡到模块——Header Units 712
16.5模块可以减少翻译单元的大小和编译次数
16.6示例:创建和使用模块716
16.7 Global Module Fragment
16.8接口与实现分离725
16.9分区732
740 . 16.10附加模块示例
16.11将代码迁移到模块
16.12模块和模块工装的未来
16.13总结748

第十七章:并行算法和并发性:高级视图
17.1介绍756
17.2标准库并行算法(c++ 17) 759
17.3多线程编程
17.4使用std::jthread 771启动任务
17.5生产者与消费者关系:第一次尝试
17.6 producer - consumer:同步对共享可变数据的访问
17.7使用循环缓冲区最小化等待
17.8读者和作家
17.9协同取消jthreads 805
17.10使用std::async 808启动任务
17.11线程安全的一次性初始化
17.12原子学简介/ 16
17.13使用c++ 20闩锁和barrier协调线程
17.14 c++ 20信号量826
17.15 c++ 23:展望c++并发的未来830
17.16总结831

第十八章:c++ 20协程
18.1介绍834
18.2协程支持库
18.3安装并发cpp和生成器库
18.4使用co_yield和生成器Library 837创建生成器协程
18.5使用concurrencpp 841启动任务
18.6使用co_await和co_return 845创建协程
18.7底层协程概念
18.8 c++ 23协程增强
18.9总结856

附录A:运算符优先级和分组

附录B:字符集859

指数861

在线章节和附录
第19章:流I/O和c++ 20文本格式
第20章:其他主题和对c++未来的展望
附录C:数字系统
附录D:预处理器
附录E:位操作

更多的信息

金宝搏188亚洲体育真人始乐通知it促销邮件和特别优惠

我想收到独家优惠,并听到有关产品的信息,从InformIT和它的品牌家族。金宝搏188亚洲体育真人始乐我可以随时取消订阅。

概述


培生教育有限公司,河街221号,新泽西州霍博肯07030,(培生)提供了这个网站,提供可以通过这个网站购买的产品和服务的信息。

本隐私通知概述了我们对隐私的承诺,并描述了我们如何收集、保护、使用和共享通过本网站收集的个人信息。请注意,培生的其他网站和在线产品及服务都有各自独立的隐私政策。

信息的收集和使用


为了开展业务、提供产品和服务,培生通过与本网站相关的多种方式收集和使用个人信息,包括:

问题和调查

对于查询和问题,我们收集查询或问题,连同姓名、联系详情(电子邮件地址、电话号码和邮寄地址)和任何其他通过“联系我们”表格或电子邮件自愿提交给我们的其他信息。我们使用这些信息来处理查询和回答问题。

在线商店

对于通过本网站在线商店进行的订单和购买,我们收集订单详细信息、姓名、机构名称和地址(如适用)、电子邮件地址、电话号码、发货和账单地址、信用卡/借记卡信息、发货选项和任何指示。我们使用这些信息来完成交易、完成订单、与下单或访问在线商店的个人沟通,以及用于相关目的。

调查

培生可能会提供提供反馈或参与调查的机会,包括评估培生产品、服务或网站的调查。参与是自愿的。培生收集调查问题中要求的信息,并使用这些信息来评估、支持、维护和改进产品、服务或网站,开发新产品和服务,进行教育研究和调查中指定的其他目的。

竞赛和图纸

偶尔,我们也会赞助一场比赛或绘画。参与是可选的。培生会收集在竞赛或绘画报名表上指定的姓名、联系方式和其他信息,以进行竞赛或绘画。根据法律要求,培生可能会从竞赛或抽奖的获胜者那里收集额外的个人信息,以用于奖励和纳税申报。

时事通讯

如果您选择接收电子邮件时事通讯或促销邮件和特别优惠,但希望取消订阅,只需电子邮件information@金宝搏188亚洲体育真人始乐informit.com

服务公告

在极少数情况下,有必要发布严格与服务相关的公告。例如,如果我们的服务因维护而暂停,我们可能会给用户发送电子邮件。一般来说,用户可能不会选择退出这些通信,尽管他们可以禁用他们的帐户信息。然而,这些交流在本质上不是宣传。

客户服务

我们会定期与用户沟通,以提供所要求的服务。当用户通过我们提交信息时,我们会根据用户的意愿通过电子邮件或电话回复与用户账户有关的问题联系我们的形式

其他信息的收集和使用


应用程序和系统日志

培生自动收集日志数据,以帮助确保网站的交付、可用性和安全性。日志数据可能包括有关用户或访问者如何连接到本网站的技术信息,例如浏览器类型、计算机/设备类型、操作系统、互联网服务提供商和IP地址。我们将这些信息用于支持目的,并用于监控网站的健康状况、识别问题、改善服务、检测未经授权的访问和欺诈活动、预防和应对安全事件以及适当扩展计算资源。

网络分析

培生可能会使用第三方网站趋势分析服务(包括谷歌Analytics)来收集访问者信息,例如IP地址、浏览器类型、参考页面、访问过的页面以及在特定网站上停留的时间。虽然这些分析服务以匿名的方式收集和报告信息,但它们可能使用cookie来收集网络趋势信息。收集到的信息可能使培生(但不是第三方web趋势服务)将信息与应用程序和系统日志数据链接起来。培生将这些信息用于系统管理和识别问题、改善服务、检测未经授权的访问和欺诈活动、防止和响应安全事件、适当扩展计算资源以及以其他方式支持和提供本网站及其服务。

cookie及相关技术

本网站使用cookie和类似技术来个性化内容、测量流量模式、控制安全性、跟踪本网站信息的使用和访问,并提供基于兴趣的消息和广告。用户可以通过浏览器管理和阻止cookie的使用。禁用或屏蔽某些cookie可能会限制本网站的功能。

不跟踪

本网站目前没有响应“不跟踪”信号。

安全


培生使用适当的物理、管理和技术安全措施来保护个人信息不被未经授权的访问、使用和披露。

孩子们


本网站不面向13岁以下儿童。

市场营销


培生可向用户发送或直接发送营销通信,但条件是

  • 培生不会将作为K-12学校服务提供商收集或处理的个人信息用于定向或定向广告。
  • 该营销符合适用法律和培生的法律义务。
  • 对于有意不接受营销的个人,培生不会故意直接或发送营销沟通。
  • 在适用法律要求的情况下,明示或默示的营销同意存在且尚未撤回。

培生可以在有限的基础上向第三方服务提供商提供个人信息,以便仅代表培生或作为培生服务提供商的关联公司或客户进行营销。营销偏好可能随时改变。

纠正/更新个人信息


如果用户的个人身份资料(例如您的邮政地址或电子邮件地址)发生更改,我们会提供一种方法来更正或更新用户提供给我们的个人资料。这可以在帐户页面.如果用户不再需要我们的服务,并希望删除他或她的帐户,请与我们联系customer-service@金宝搏188亚洲体育真人始乐informit.com我们将处理用户帐户的删除。

选择/退出


用户可以在知情的情况下选择是否继续使用InformIT提供的某些服务。金宝搏188亚洲体育真人始乐如果您选择从我们的邮件列表中删除自己,只需访问以下页面并取消您不再希望收到的任何通讯:www.金宝搏188亚洲体育真人始乐informit.com/u.aspx

出售个人资料


培生不以任何金钱交换出租或出售个人信息。

虽然根据内华达州法律的定义,培生集团不出售个人信息,但内华达州居民可以通过电子邮件请求不向其出售个人信息NevadaDesignatedRequest@pearson.com

加州居民隐私补充声明


加州居民应该读读我们的加州居民的补充隐私声明与本私隐通知一并发出。的加州居民的补充隐私声明解释培生遵守加州法律的承诺,并适用于因本网站和服务收集的加州居民个人信息。

共享和信息披露


培生可能会披露个人信息,具体如下:

  • 按照法律的要求。
  • 在个人(或其父母,如果个人是未成年人)同意的情况下
  • 在法律允许或要求的范围内响应传票、法院命令或法律程序
  • 根据适用法律,保护个人、数据、资产和系统的安全和安全
  • 根据本隐私通知的规定,其部分或全部公司或资产的出售、合资或其他转让
  • 调查:调查或处理实际的或可疑的欺诈或其他非法活动
  • 行使其合法权利,包括执行本网站或其他合约的使用条款
  • 与培生相关的公司以及其他为培生工作并有义务保护个人信息隐私的公司和组织,并与本隐私声明保持一致
  • 到学校、组织、公司或政府机构,Pearson在学校或代表该组织、公司或政府机构收集或处理个人信息。

链接


本网站包含到其他网站的链接。请注意,我们不对此类其他网站的隐私做法负责。我们鼓励用户在离开我们的网站时注意这一点,并阅读每一个收集个人信息的网站的隐私声明。本私隐声明只适用于本网站所收集的资料。

请求和联系


联系我们或如果您有任何关于您个人信息隐私的要求或问题。

本隐私通知的更改


我们可能会通过更新发布来修改本隐私通知。我们会在张贴中注明修订的生效日期。通常,进行更新是为了提供更清晰的信息或满足法规要求的变化。如果更新内容涉及个人信息收集、保护、使用或披露方面的重大变更,培生将通过本网站醒目的通知或其他适当的方式提供变更通知。在张贴的修改生效日期后继续使用该网站证明已接受。如果您对隐私通知有任何问题或担忧,或对任何修订有任何异议,请联系我们。

最后更新日期:2020年11月17日