现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版

现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版

编辑点评:现代C++新标准教程速学教程

每章中都出现了大量的代码,如果你在跟随本书介绍特性的思路编写自己的代码遇到问题时,不妨读一读随书附上的源码,你可以在这里中找到书中介绍过的全部的源码,所有代码按章节组织,文件夹名称为章节序号。

现代C++教程高速上手pdf免费版

现代C++教程高速上手pdf

现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(1)

现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(2)

现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(3)

现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(4)

现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(5)

现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(6)

特色介绍

C++ 是一个用户群体相当大的语言。从 C++98 的出现到 C++11 的正式定稿经历了长达十年多之久的积累。C++14/17 则是作为对 C++11 的重要补充和优化,C++20 则将这门语言领进了现代化的大门,所有这些新标准中扩充的特性,给 C++ 这门语言注入了新的活力。 那些还在坚持使用传统 C++(本书把 C++98 及其之前的 C++ 特性均称之为传统 C++)而未接触过现代 C++ 的 C++ 程序员在见到诸如 Lambda 表达式这类全新特性时,甚至会流露出『学的不是同一门语言』的惊叹之情。

现代 C++ (本书中均指 C++11/14/17/20) 为传统 C++ 注入的大量特性使得整个 C++ 变得更加像一门现代化的语言。现代 C++ 不仅仅增强了 C++ 语言自身的可用性,auto 关键字语义的修改使得我们更加有信心来操控极度复杂的模板类型。同时还对语言运行期进行了大量的强化,Lambda 表达式的出现让 C++ 具有了『匿名函数』的『闭包』特性,而这一特性几乎在现代的编程语言(诸如 Python/Swift/..)中已经司空见惯,右值引用的出现解决了 C++ 长期以来被人诟病的临时对象效率问题等等。

C++17 则是近三年依赖 C++ 社区一致推进的方向,也指出了现代C++编程的一个重要发展方向。尽管它的出现并不如 C++11 的分量之重,但它包含了大量小而美的语言与特性(例如结构化绑定),这些特性的出现再一次修正了我们在 C++ 中的编程范式。

现代 C++ 还为自身的标准库增加了非常多的工具和方法,诸如在语言自身标准的层面上制定了 std::thread,从而支持了并发编程,在不同平台上不再依赖于系统底层的 API,实现了语言层面的跨平台支持;std::regex 提供了完整的正则表达式支持等等。C++98 已经被实践证明了是一种非常成功的『范型』,而现代 C++ 的出现,则进一步推动这种范型,让 C++ 成为系统程序设计和库开发更好的语言。Concept 提供了对模板参数编译期的检查,进一步增强了语言整体的可用性。

总而言之,我们作为 C++ 的拥护与实践者,始终保持接纳新事物的开放心态,才能更快的推进 C++ 的发展,使得这门古老而又新颖的语言更加充满活力。

本书号称『高速上手』,从内容上对二十一世纪二十年代之前产生 C++ 的相关特性做了非常相对全面的介绍,读者可以自行根据下面的目录选取感兴趣的内容进行学习,快速熟悉需要了解的内容。这些特性并不需要全部掌握,只需针对自己的使用需求和特定的应用场景,学习、查阅最适合自己的新特性即可。

同时,本书在介绍这些特性的过程中,尽可能简单明了的介绍了这些特性产生的历史背景和技术需求,这为理解这些特性、运用这些特性提供了很大的帮助。

此外,笔者希望读者在阅读本书后,能够努力在新项目中直接使用 C++17,并努力将旧项目逐步迁移到 C++17。也算是笔者为推进现代 C++ 的普及贡献了一些绵薄之力。

目录大全

序言 7

引言 7

目标读者 7

本书目的 7

相关代码 8

随书习题 8

第 1 章迈向现代 C++ 8

1.1 被弃用的特性 8

1.2 与 C 的兼容性 9

进一步阅读的参考文献 11

第 2 章语言可用性的强化 11

2.1 常量 12

nullptr 12

constexpr 13

2.2 变量及其初始化 15

if/switch 变量声明强化 15

初始化列表 16

结构化绑定 17

2.3 类型推导 18

auto 18

decltype 19

尾返回类型推导 20

decltype(auto) 21

2.4 控制流 22

if constexpr 22

区间 for 迭代 22

2.5 模板 23

外部模板 23

尖括号 “>” 23

类型别名模板 24

默认模板参数 24

变长参数模板 25

折叠表达式 27

非类型模板参数推导 27

2.6 面向对象 28

委托构造 28

继承构造 29

显式虚函数重载 29

显式禁用默认函数 30

强类型枚举 31

总结 32

习题 32

第 3 章语言运行期的强化 32

3.1 Lambda 表达式 32

基础 33

泛型 Lambda 34

3.2 函数对象包装器 35

std::function 35

std::bind 和 std::placeholder 36

3.3 右值引用 36

左值、右值的纯右值、将亡值、右值 37

右值引用和左值引用 37

移动语义 39

完美转发 41

总结 43

进一步阅读的参考文献 44

第 4 章容器 44

4.1 线性容器 44

std::array 44

std::forward_list 46

4.2 无序容器 46

4.3 元组 47

元组基本操作 47

运行期索引 48

元组合并与遍历 49

总结 50

第 5 章智能指针与内存管理 50

5.1 RAII 与引用计数 50

5.2 std::shared_ptr 50

5.3 std::unique_ptr 52

5.4 std::weak_ptr 53

总结 55

进一步阅读的参考资料 55

第 6 章正则表达式 55

6.1 正则表达式简介 55

普通字符 55

特殊字符 55

限定符 56

6.2 std::regex 及其相关 56

总结 58

习题 58

进一步阅读的参考资料 60

第 7 章并行与并发 60

7.1 并行基础 60

7.2 互斥量与临界区 60

7.3 期物 62

7.4 条件变量 63

7.5 原子操作与内存模型 65

原子操作 65

一致性模型 67

内存顺序 69

总结 71

习题 71

进一步阅读的参考资料 72

第 8 章文件系统 72

8.1 文档与链接 72

8.2 std::filesystem 72

第 9 章其他杂项 72

9.1 新类型 72

long long int 72

9.2 noexcept 的修饰和操作 72

9.3 字面量 74

原始字符串字面量 74

自定义字面量 74

9.4 内存对齐 75

总结 76

第 10 章展望:C++20 简介 76

概念与约束 76

模块 77

合约 77

范围 77

协程 77

事务内存 77

总结 77

进一步阅读的参考资料 77

附录 1:进一步阅读的学习材料 78

附录 2:现代 C++ 的最佳实践 78

常用工具 78

代码风格 78

整体性能 78

代码安全 78

可维护性 78

可移植性 79

序言阅读

适读人群有

1本书假定读者已经熟悉了传统 C++ ,至少在阅读传统 C++ 代码上不具备任何困难。换句话说,那些长期使用传统 C++ 进行编码的人、渴望在短时间内迅速了解现代 C++ 特性的人非常适合阅读本书;

2本书一定程度上介绍了一些现代 C++ 的黑魔法,但这些魔法毕竟有限,不适合希望进阶学习现代C++ 的读者,本书的定位系现代 C++ 的快速上手。当然,希望进阶学习的读者可以使用本书来回顾并检验自己对 现代 C++ 的熟悉度。

本书号称『高速上手』,从内容上对二十一世纪二十年代之前产生 C++ 的相关特性做了非常相对全面的介绍,读者可以自行根据下面的目录选取感兴趣的内容进行学习,快速熟悉需要了解的内容。这些特性并不需要全部掌握,只需针对自己的使用需求和特定的应用场景,学习、查阅最适合自己的新特性即可。

同时,本书在介绍这些特性的过程中,尽可能简单明了的介绍了这些特性产生的历史背景和技术需求,这为理解这些特性、运用这些特性提供了很大的帮助。

此外,笔者希望读者在阅读本书后,能够努力在新项目中直接使用 C++17,并努力将旧项目逐步迁移到 C++17。也算是笔者为推进现代 C++ 的普及贡献了一些绵薄之力。

现代C++教程高速上手pdf免费版截图

现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(7)现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(8)现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(9)现代c++教程欧长坤下载-现代C++教程高速上手pdf免费版高清免费版插图(10)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

Comments