首页>商店

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

物超所值购买

图书+电子书捆绑包

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

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

    Adobe Reader”><span class=PDF流行的标准,最常与自由一起使用Adobe®®读者软件

    这本电子书不需要密码或激活阅读。我们通过谨慎地用您的名字标记水印来定制您的电子书,使其独一无二。

添加到购物车

免费送货!

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

免费送货!

电子书(水印)

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

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

    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指南

为具有另一种高级语言背景的程序员编写,在本书中,您将学习使用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++, Apple Xcode®哗,LLVM®/叮当声
  • 码头工人:GNU®GCC, LLVM®/叮当声
  • 基础知识:控制语句、函数、字符串、引用、指针、文件、异常
  • 面向对象编程:类、对象、继承、运行时和静态多态性、操作符重载、复制/移动语义、RAII、智能指针
  • 函数式编程:c++ 20范围和视图,lambda表达式
  • 泛型编程:模板、c++ 20概念和元编程
  • c++ 20模块:大规模开发
  • 并发编程:并发、多线程、并行算法、c++ 20协程、协程支持库、c++ 23执行器
  • 未来:期待契约、基于范围的并行算法、标准库协程支持等等

面向程序员的c++ 20建立了对现代c++的直觉,这是当前软件工程生态系统中每个程序员都应该拥有的。Deitels展示材料的独特而辉煌的顺序更自然地与现代生产级编程环境的需求相吻合。我强烈推荐这本书给任何需要加快c++速度的人,特别是在专业编程环境中,如果没有这本书提供的精心设计的指导,现代c++的习惯用法和模式可能会难以理解。
--Daisy Hollman博士,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++标准委员会成员

注册你的书,方便下载,更新,和/或更正,因为他们变得可用。详情见内页。注意:电子书是四色的,纸质书是黑白的。

下载

下载

下载一页PDF格式,并附有书中目录的图解:目录表(649kb .pdf)

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

临时演员

相关文章

面向程序员的c++:控制语句:第1部分

c++程序设计导论

作者的网站

访问作者的网站:deitel.com

示例内容

在线示例章节

c++控制语句,第2部分

样页

下载样例页面(包括第4章第2部分)

目录表

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

第1章:介绍和测试驱动流行的免费c++编译器
1.1简介2
1.2测试驱动c++ 20应用程序
1.3摩尔定律,多核处理器和并发编程
1.4简单回顾一下面向对象
1.5总结

第2章:c++编程入门
2.1简介22
2.2 c++中的第一个程序:显示一行文本
2.3修改我们的第一个c++程序
2.4另一个c++程序:整数相加
2.5算术30
2.6决策:等式和关系运算符
2.7自然对象:创建和使用标准库类string的对象
2.8总结

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

第4章:控制声明:第2部分
4.1简介70
4.2反控制迭代要点
4.3用于迭代语句71
4.4 for语句使用示例
4.5应用:偶整数求和
4.6应用:复利计算
4.7 dowhile迭代语句
4.8 switch多选语句
4.9带初始化式的c++ 17选择语句
4.10中断并继续表述
4.11逻辑运算符
4.12混淆相等(==)和赋值(=)操作92
4.13对象-自然案例研究:使用mini -cpp库读写ZIP文件94
4.14 c++ 20带字段宽度和精度的文本格式化
4.15总结

第5章:函数和函数模板简介
5.1简介102
5.2 c++程序组件
5.3数学库函数
5.4函数定义和函数原型
5.5函数实参的求值顺序
5.6函数原型和参数强制转换
5.7 c++标准库头文件
5.8案例研究:随机数生成
5.9案例研究:机会游戏;介绍作用域枚举
5.10范围规则
5.11内联函数
5.12参考和参考参数
5.13默认参数
5.14一元作用域解析运算符
5.15函数重载
5.16功能模板
5.17递归
5.18递归示例:斐波那契数列
5.19递归与迭代
5.20 nffylun Lhqtomh Wjtz Qarcv: Qjwazkrplm xzz Xndmwwqhlz 147
5.21总结

第六章:数组、向量、范围和函数式编程
6.1简介154
6.2阵列155
6.3声明数组155
6.4在循环中初始化数组元素
6.5使用初始化列表初始化数组
6.6 c++ 11基于范围的for和c++ 20基于范围的for带初始化器
6.7计算数组元素值和constexpr介绍
6.8总计数组元素163
6.9使用原始柱状图以图形方式显示数组数据
6.10使用数组元素作为计数器
6.11使用阵列对调查结果进行汇总
6.12数组排序和查询
6.13多维数组
6.14函数式编程入门
6.15对象-自然案例研究:c++标准库类模板向量
6.16总结性说明

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

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

第九章:自定义类
9.1简介
9.2试驾Account对象
9.3带数据成员的Account类以及Set和Get成员函数
9.4帐户类:自定义构造函数
9.5具有Set和Get成员函数的软件工程
9.6余额为280的账户类
9.7 Time类案例研究:分离接口与实现
9.8编译和链接过程
9.9类作用域和访问类成员
9.10接入函数和实用函数
时间类案例研究:带默认实参的构造函数
9.12析构函数
9.13何时调用构造函数和析构函数
9.14 Time类案例研究:一个微妙的陷阱——返回私有数据成员的引用或指针
9.15默认赋值操作符
9.16 const对象和const成员函数
9.17组合:作为类成员的对象
9.18 friend函数和friend类
9.19 this指针
9.20静态类成员:类范围的数据和成员函数
9.21 c++中的聚合324
9.22对象-自然案例研究:JSON 326序列化
9.23总结333

第10章:OOP:继承和运行时多态性
10.1简介336
10.2基类和派生类
10.3基类和派生类之间的关系
10.4派生类中的构造函数和析构函数
10.5运行时多态性入门:多态电子游戏
10.6继承层次中对象之间的关系
10.7虚函数和虚析构函数
10.8抽象类和纯虚函数
10.9案例研究:使用运行时多态的工资系统
10.10运行时多态性、虚函数和动态绑定“底层
10.11 NVI (Non-Virtual Interface)习惯用法
10.12编程到接口,而不是实现383
10.13 std::variant和std::visit的运行时多态
10.14多重继承
10.15受保护的类成员:更深入的观察
10.16公有、受保护和私有继承
10.17更多运行时多态性技术;编译时多态性
10.18总结

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

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

第13章:标准库容器和迭代器
13.1简介506
13.2容器简介
13.3使用迭代器
13.4算法简介
13.5顺序容器
13.6 vector Sequence Container 519
13.7 list Sequence Container
13.8 deque Sequence Container 531
13.9关联容器
13.10容器适配器
13.11 bitset近容器547
13.12可选:大o549简介
13.13可选:哈希表简介
13.14总结

第14章:标准库算法和c++ 20范围和视图
14.1简介
14.2算法要求:c++ 20
14.3 lambda和算法
14.4算法
14.5函数对象(函子
14.6预测
14.7 c++ 20视图和函数式编程
14.8并行算法介绍
14.9标准库算法摘要
14.10 c++ 23的展望
14.11总结

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

第16章:c++ 20模块:大规模开发
16.1简介
16.2 c++ 20之前的编译和链接
16.3模块的优势和目标
16.4示例:转换到模块——头单元712
16.5模块可以减少翻译单元大小和编译时间
16.6示例:创建和使用模块
16.7全局模块片段
16.8分离接口和实现
16.9 732分区
16.10附加模块示例
16.11迁移代码到模块
16.12模块和模块工具的未来
16.13总结

第17章:并行算法和并发:一个高级视图
17.1简介
17.2标准库并行算法(c++ 17
17.3多线程编程
17.4使用std::jthread 771启动任务
17.5生产者-消费者关系:第一次尝试
17.6 ProducerConsumer:同步访问共享的可变数据
17.7 ProducerConsumer:最小化循环缓冲区的等待795
17.8读写器
17.9协同取消jthread 805
17.10使用std::async 808方式启动任务
17.11线程安全的一次性初始化
17.12原子学简介
17.13使用c++ 20协调线程latch和barrier
17.14 c++ 20信号量
17.15 c++ 23:展望c++并发性的未来[j]
17.16总结

第十八章:c++ 20协程
18.1简介
18.2协程支持库
18.3安装concurrencpp库和generator库
18.4使用co_yield和生成器库837创建生成器协程
18.5启动concurrencpp 841的任务
18.6使用co_await和co_return创建协程
18.7低级协程概念
18.8 c++ 23协程增强
18.9总结

附录A:操作符优先级和分组

附录B:字符集859

指数861

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

更多的信息

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

我希望收到独家报价,并听到有关InformIT及其品牌家族的产品。金宝搏188亚洲体育真人始乐我可以随时退订。

概述


培生教育有限公司(Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030)提供本网站,提供可通过本网站购买的产品和服务的信息。

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

信息的收集和使用


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

问题及查询

对于查询和问题,我们会收集查询或问题,以及姓名、联系方式(电子邮件地址、电话号码和邮寄地址)以及通过“联系我们”表格或电子邮件自愿提交给我们的任何其他附加信息。我们使用这些信息来解决询问和回答问题。

在线商店

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

调查

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

比赛及绘图

偶尔,我们可能会赞助比赛或绘画。参与是可选的。培生收集参赛者姓名、联系方式和其他填写在参赛表格上的信息,以进行比赛或抽奖。培生可能会根据法律要求,从竞赛或抽奖的获胜者那里收集额外的个人信息,以便颁发奖品和用于税务报告目的。

时事通讯

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

服务公告

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

客户服务

我们定期与用户沟通,以提供所要求的服务,并且当用户通过我们的网站提交信息时,我们会根据用户的意愿通过电子邮件或电话回复与他们的帐户有关的问题联络表格

其他信息的收集和使用


应用和系统日志

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

网络分析

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

Cookies及相关技术

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

不要跟踪

本网站目前不响应禁止跟踪信号。

安全


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

孩子们


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

市场营销


培生可以向用户发送或直接发送营销信息,前提是

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

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

更正/更新个人资料


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

选择/退出


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

出售个人资料


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

虽然皮尔逊不出售个人信息,根据内华达州法律的定义,内华达州居民可以通过电子邮件请求不出售他们的个人信息NevadaDesignatedRequest@pearson.com

加州居民补充隐私声明


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

分享与披露


培生可能会在以下情况下披露个人信息:

  • 这是法律规定的。
  • 经个人同意(或其父母同意,如果个人是未成年人)
  • 在法律允许或要求的范围内响应传票、法院命令或法律程序
  • 根据适用法律保护个人、数据、资产和系统的安全
  • 与出售、合资或以其他方式转让部分或全部公司或资产有关,但须遵守本隐私声明的规定
  • 调查或处理实际的或涉嫌的欺诈或其他非法活动
  • 行使其合法权利,包括执行本网站的使用条款或其他合同
  • 培生的附属公司以及为培生工作的其他公司和组织,他们有义务按照本隐私声明保护个人信息的隐私
  • 对于学校、组织、公司或政府机构,培生在学校或代表这些组织、公司或政府机构收集或处理个人信息。

链接


本网站包含到其他网站的链接。请注意,我们不负责此类其他网站的隐私做法。我们鼓励我们的用户在离开我们的网站时保持警惕,并阅读每个收集个人信息的网站的隐私声明。本隐私声明仅适用于本网站收集的信息。

请求及联络


联系我们查阅本私隐声明,或对您的个人资料私隐有任何要求或疑问。

本隐私声明的变更


我们可能会通过更新发布来修改本隐私声明。我们将在公告中注明修订的生效日期。通常,进行更新是为了提供更大的清晰度或符合法规要求的变化。如果更新涉及个人信息的收集、保护、使用或披露的重大变化,培生将通过本网站的显著通知或其他适当方式提供变更通知。在已发布的修改证明生效日期后继续使用本网站。如果您对本隐私声明有任何疑问或疑虑,或对任何修订有任何异议,请与我们联系。

最后更新:2020年11月17日