Skip to content
  • 主页
  • 资源下载(试读、源码、勘误)
  • 蕃茄钟
  • C#
  • C++
  • 软件需求
  • Python
  • AI
  • 游戏开发

周靖的博客 <_>

2004-2024

《学习C++20》中文版,C++20 for Programmers: An Objects-Natural Approach

Posted on 2023-07-072025-04-28 By admin 《学习C++20》中文版,C++20 for Programmers: An Objects-Natural Approach有 11 条评论

欢迎阅读《学习C++20》中文版。本书为软件开发人员介绍前沿的计算技术,符合ISO C++标准委员会于2020年9月批准[1]的C++20标准(共1834页)。[2] C++编程语言适合构建高性能的关键业务和关键任务计算系统,包括操作系统、实时系统、嵌入式系统、游戏系统、银行系统、空中管制系统、通信系统等。本书是C++20的一个从入门到中级的教程,涵盖了C++语言本身(世界上最流行的编程语言之一[3])及其相关的标准库。我们对C++20进行了友好的、现代的、代码密集的、面向案例的介绍。

购买链接:京东 淘宝 | 美国Amazon
下载配套代码和试读PDF(1-5章和附录)  ys168 网盘>> 百度网盘>> 本地下载(仅试读PDF)>>

《学习C++20》中文版特色:

  • 涵盖C++20的四大特性:范围、概念、模块和协程。
  • 采用“对象自然”(Objects-Natural)法:使用标准库和开源库,以最少的代码构建功能齐全的应用程序
  • 数以百计来自真实世界的编码示例
  • 现代C++:涵盖C++20、17、14、11,并展望了C++23
  • 编译器:Visual C++®, GNU® g++, Apple Xcode® Clang, LLVM®/Clang
  • Docker:GNU® GCC, LLVM®/Clang
  • 基础知识:控制语句、函数、字符串、引用、指针、文件、异常
  • 面向对象编程:类、对象、继承、运行时和静态多态性、操作符重载、拷贝/移动语义、RAII、智能指针
  • 函数式编程:C++20的范围和视图、lambda表达式
  • 泛型编程:模板、C++20概念和元编程
  • C++20“模块”:大规模开发
  • 并发编程:并发、多线程、并行算法、C++20协程、协程支持库、C++23执行器
  • 未来:对契约的展望、基于范围的并行算法、标准库的协程支持等

本书面向的读者:

  • 希望在完全覆盖、专业风格的教程中学习最新C++20特性的C++软件开发人员。
  • 需要做一个C++项目,并想学习最新语言特性的非C++软件开发人员。
  • 在大学里学过C++,或者在一段时间内因为职业需要使用过C++,并希望在C++20的背景下更新自己的C++知识的软件开发人员。
  • 想要开发C++20课程的职业C++培训师。

[1] Herb Sutter, “C++20 Approved, C++23 Meetings and Schedule Update”,2020年9月6日。详情请访问https://herbsutter.com/2020/09/06/c20-approved-c23-meetings-and-schedule-update/。

[2] C++标准的最终草案在此:https://timsong-cpp.github.io/cppwp/n4861/,该版本免费。要购买最终发行版(ISO/IEC 14882:2020),请访问https://www.iso.org/standard/79358.html。

[3] 出自“TIOBE编程社区指数”,网址是https://www.tiobe.com/tiobe-index。


2024.3更新:第二次印刷,进行了一些勘误(见下)

2024.12更新:第三次印刷,无勘误

2025.4更新:更新了勘误,将反映在第四次印刷中。因为涉及到源代码的勘误,因此同时更新了配套代码下载。

========第一次印刷勘误========

31页,倒数第2行:将“变星”改为“变量”(感谢before80)

98页:表格第二列的首字母小写,即改为false,true等(感谢before80)

100页:表格第二列的首字母小写,改为false(感谢before80)

150页:第一段的倒数第二行:将“像平是”改为“像平时”(感谢before80)

185页:倒数第1段,第1行,将randomInt(engine)改为randomDie(engine)(感谢before80)

187页,第一段,第三行:将response.at(response)改为frequency.at(response)(感谢before80)

231页,倒数第一段:将“就不需要为sizeof使用圆括号”改为“就不必使用圆括号”(感谢before80)

96页,图4.8的代码输出,改为:(感谢before80)

1 2 3 4
Broke out of loop at count = 5 

243页:第3段:删除“可以要用”./fig07_13″来运行该程序。”中的“可以”(感谢before80)

=============结束第一次印刷勘误======================

============第二次、第三次印刷勘误===================

628页倒数第11行,将“76个预定义概念”改为“74个预定义概念” (感谢陈文军)

742页倒数第7行,将std::integrity改为std::integral(感谢陈文军)

147页程序输出框最后两行,改为:(感谢陈文军)

The volume of a box with length 10
width 5 and height 2 is: 100

239页第2行,将“可以利用span的begin和end函数将span传给C++标准库算法”改为“可以为span使用begin和end函数,从而将span传给C++标准库算法”。(感谢陈文军)

255中间段,倒数第2行,将551 599改为551 615 (感谢陈文军)

258页代码第16行,将int改为size_t (感谢陈文军)

337页,中间一段第一行,将this改为first(感谢陈文军)

344页,第5段,将“聚光灯”改为“函数”(感谢陈文军)

352页,代码第9行,将setX改为modifyX     (感谢陈文军)

364页,第4行,将“此是”改为“此时”     (感谢陈文军)

370页,中间段,倒数第2行,将“第49行”改为“第47行”(感谢陈文军)

371页,最后一段,第2行,将“第54行”改为“第52行”(感谢陈文军)

397页,最后一段,第1行,将“指和”改为“指向”(感谢陈文军)

405页,第三段,SalariedCommission Employee应连接为完整的SalariedCommissionEmployee(感谢陈文军)

423页,第3段最后一行,将“这两个函数都重写了Employee类的”改为“这两个函数都重写了Employee类的函数”(感谢陈文军)

425页,编号4,第1行,将“或者是protected虚函数”改为“或者是protected非虚函数”(感谢陈文军)

425页,编号4,第3行,将“public虚函数”改为“public虚析构函数”(感谢陈文军)

445页,最后一行,将std::visiting改为std::visit(感谢陈文军)

449页,最后1行,将“第13”行为“第12行”(感谢陈文军)

451页,程序输出不完整,应为:

Object base1 contains: 10
Object base2 contains the character: Z
Object derived contains: int: 7; char: A; double: 3.5

Data members of Derived can be accessed individually:
int: 7
char: A
double: 3.5

Derived can be treated as an object of either base class:
base1Ptr->getData() yields 7
base2Ptr->getData() yields A

475页,第2行,将“俗艳”改为“从而”(感谢陈文军)

479页,第2段第3行,将“指针为nullptr”改为“将指针设为nullptr”(感谢陈文军)

491页,第2段第4行,将“并那里”改为“并在那里”(感谢陈文军)

509页,11.6.13节第1段第1行,将“传递操作符”改为“递减操作符”(感谢陈文军)

542页,倒数第3段,倒数第2行,将“功有助于”改为“功能有助于”(感谢陈文军)

542页,倒数第2段,第1行,将“果出现”改为“如果出现”(感谢陈文军)

547页,12.8节第1段第1行,将“1.4节展示了”改为“11.4节展示了”(感谢陈文军)

578页,倒数第3行,将“可移动构造”改为“可移动赋值”(感谢陈文军)

579页,第3段第2行,将“函数end返回指向容器末尾后的第一个元素”改为“函数end返回指向容器末尾后的第一个元素的迭代器”(感谢陈文军)

586页,第1段,第3行~第4行,将“除了array和forward_list,其他所有序列容器都支持push_back(和push_front)。”改为“除了array和vector之外的其他所有序列容器还支持push_front。”(感谢陈文军)

621页,第2段最后一句,将“希处理”改为“哈希处理”(感谢陈文军)

633页,黑点列表第一项,将“以为指定值”改为“设为指定值”(感谢陈文军)

694页,第1行第三个算法,将copy_ifPR11改为copy_ifPR11(感谢陈文军)

729页,最后一个代码片断,Number multiply…应为T multiply…(感谢陈文军)

736页,黑点列表第二条,将“第一个”改为“第二个”(感谢陈文军)

765页,15.12.2节第1段第1行,将“可参数”改为“可变参数”(感谢陈文军)

765页,15.12.2节第1段第3行,将“两种可变参数的两种方法”改为“处理可变参数的两种方法”(感谢陈文军)

799页,倒数第4行,将“码码”改为“码”(感谢陈文军)

825页,最后一行,将“以展示用户提供的这些灵活性”改为“以展示向用户提供的这些灵活性”(感谢陈文军)

860页,代码上面倒数第2行,将“如图17.1所示”改为“如图17.2所示”(感谢陈文军)

177页,代码第21行,将values.size()改为values2.size() (原书勘误)

784页,代码第16行,这一行应为:(原书勘误)

typename Iterator::iterator_category>) {

919页,第一行代码,将:

std::cout << fmt::format("Final atomicCount: {}\n", atomicCount);

改为(原书勘误):

std::cout << fmt::format("Final atomicCount: {}\n", atomicCount.load());

===========结束第二次、第三次印刷勘误=================


英文版书名:C++20 for Programmers: An Objects-Natural Approach Amazon详情页
ISBN:9780136905691
原著:Paul Deitel & Harvey Deitel

中文版书名:《学习C++20 (中文版)》 京东详情页
ISBN:9787302625438
翻译:周靖

 

 

分享到:

  • 点击以分享到 X(在新窗口中打开) X
  • 点击分享到 Facebook (在新窗口中打开) Facebook

赞过:

赞 正在加载……

相关

C++ Tags:C++, C++20

文章导航

Previous Post: 《系统分析与设计》(第9版),Modern Systems Analysis and Design,Ninth Edition
Next Post: 《机器学习与人工智能实战:基于业务场景的工程应用》

Comments (11) on “《学习C++20》中文版,C++20 for Programmers: An Objects-Natural Approach”

  1. before80说道:
    2023-09-19 21:13

    勘误:
    第243页:“在macOS和Linux上,可以要用”./fig07_13″来运行该程序。”
    根据上下文,推断应该是“在macOS和Linux上,可能要用”./fig07_13″来运行该程序。”
    “可以”修改成“可能”。

    登录以回复
    1. admin说道:
      2023-10-21 02:21

      这7条勘误会反映在下一次印刷中(争取):sigh。

      登录以回复
    2. admin说道:
      2024-04-28 06:20

      请留一个email邮箱,我跟您联系,邮寄第二次印刷的修订版。

      登录以回复
      1. before80说道:
        2024-08-10 01:00

        好的,感谢您,这是我的邮箱:[email protected] 。

        登录以回复
        1. admin说道:
          2024-08-12 01:01

          已回复,请查收邮件。

          登录以回复
  2. before80说道:
    2023-09-19 18:46

    勘误:
    第231页:“只有当类型名称(例如int)被作为操作数提供时,sizeof才需要使用圆括号。如果sizeof的操作数是一个表达式,就不需要为sizeof使用圆括号。”
    根据fig07_10.cpp和fig07_11.cpp两个示例程序,可以看出:若sizeof的操作数是一个表达式,可以不用为seizeof使用圆括号。
    故上述表述应该是有点歧义的,“不需要”并不表示“可以不用”的意思,同时“需要”也并不表示“必须使用”的意思。

    登录以回复
  3. before80说道:
    2023-09-19 18:17

    勘误:
    第222页、第232页、第233页等页面中,“内置数组”和“内建数组”混合使用。

    登录以回复
  4. before80说道:
    2023-09-17 16:27

    勘误:
    第187页:“关键语句是第19行,它根据response.at(response)的值来递增适当的计数器。”
    根据fig06_08.cpp,应该是“关键语句是第19行,它根据frequency.at(response)的值来递增适当的计数器。”

    登录以回复
  5. before80说道:
    2023-09-17 16:12

    勘误:
    第185页:“调用randomInt(engine)生成一个1~6的随机索引”
    根据fig06_07.cpp应该是“调用randomDie(engine)生成一个1~6的随机索引”。

    登录以回复
  6. before80说道:
    2023-09-16 17:23

    勘误:
    第150页: “我们没有像平是那样显示程序的输出,而是…”
    “平是”应该是“平时”。

    登录以回复
  7. before80wh说道:
    2023-09-16 08:30

    勘误:
    第31页: “变星声明和大括号初始化”
    应该是“变量声明和大括号初始化”。
    第96页:fig04_08.cpp程序的输出结果不对,书中的结果是fig04_07.cpp程序的。
    第98页和第100页:表格中的true和false的大小写混用。

    登录以回复

发表回复 取消回复

要发表评论,您必须先登录。

请输入电子邮件来订阅本博客

新文章发布时,您将通过电子邮件接收到通知。平时不会打扰您。

加入其他 53 位订阅者的行列

近期文章

  • 《高质量需求:聚焦于商业价值的20个核心实践》2025年出版 2025-04-15
  • 番茄钟 2025-01-06
  • 《SRE规模化实践手册》 2024-12-30
  • 《大模型编程实践与提示工程》 2024-12-30
  • 《C++编程思想》2025重译版 2024-12-30
  • 《C#12.0本质论》 2024-10-07
  • 《深入CLR》(原CLR via C#)2024修订版 2024-10-07
  • 《Python超能学习手册》 2024-08-14
  • 《Unity 2D游戏开发》和《Unity 3D游戏开发》 2024-08-12

近期评论

  • 《高质量需求:聚焦于商业价值的20个核心实践》2025年出版 – 周靖的博客 <_> 发表在《《需求可视化:22个需求模型及其应用场景》2024年出版》
  • admin 发表在《《学习Python》第6版,2024年出版》
  • 《大模型编程实践与提示工程》 – 周靖的博客 <_> 发表在《在Azure上免费创建OpenAI环境并避开API调用的国家/地区限制:详细教程》
  • jiancheng 发表在《《学习Python》第6版,2024年出版》
  • 在Azure上免费创建OpenAI环境并避开API调用的国家/地区限制:详细教程 – 周靖的博客 <_> 发表在《《大模型编程实践与提示工程》》

本站所有文章归档

  • 2025 年 4 月 (1)
  • 2025 年 1 月 (1)
  • 2024 年 12 月 (3)
  • 2024 年 10 月 (2)
  • 2024 年 8 月 (2)
  • 2024 年 7 月 (1)
  • 2024 年 6 月 (2)
  • 2024 年 5 月 (1)
  • 2023 年 8 月 (1)
  • 2023 年 7 月 (2)
  • 2023 年 4 月 (1)
  • 2023 年 3 月 (1)
  • 2022 年 12 月 (2)
  • 2022 年 5 月 (1)
  • 2022 年 3 月 (1)
  • 2019 年 4 月 (1)
  • 2018 年 11 月 (2)
  • 2018 年 8 月 (2)
  • 2018 年 7 月 (2)

Copyright © 2025 周靖的博客 <_>.

Powered by PressBook WordPress theme

 

正在加载评论...
 

您必须登录才能发表评论。

    %d