wallencai

V1

2022/08/09阅读:29主题:默认主题

《C++ Primer》读书笔记 00. 推荐序&前言

本书使用的C++标准:C++ 11


潘爱明老师的推荐序:

  • 无序容器,弥补hash容器的缺陷
  • 支持移动构造函数移动赋值函数,减少特性场景下对象拷贝的性能开销

代价:C++不断增加的复杂性,不断增加的新特性导致学习曲线非常陡峭。

学习语言的一个境界是把自己想象成编译器。...像编译器一样来思考和理解C++语言,在“揣摩”编译器行为的过程中可逐渐掌握C++语法特性。

在实践中,不必全面地使用C++语言的各种特性,而应根据工程项目的实际情况,适当取舍(譬如动态类型信息虚拟继承异常等特性的使用就值得商榷)。通常只鼓励使用C++语言的一个子集就够了。可以参考的例子Google发布的Google C++ Style Guide。


孟岩的推荐序

一种优秀的编程语言,一定要对于计算这件事情实现一个完整和自洽的抽象。十几年来编程语言领域的竞争,除却实现质量之外,基本上是在比拼抽象的设计。而C语言之所以四十年长盛不衰,根本在于它对于现代计算机提供了一个底层的高级抽象:凡是比它低的抽象都过于简陋,凡是比它高的抽象都可以用C语言构造出来。C++成功的根本原因,恰恰是因为它虽然试图提供一些高级的抽象机制,但是其根基与C在同一层面。正因为如此,每当你需要走下去直接与硬件对话时,C++成为C之外唯一有效率的选择。...C++最大的力量不在于其抽象,恰恰在于其不抽象。

C++同时支持4种不同的编程风格:

  • C风格
  • 基于对象
  • 面向对象
  • 泛型
  • “基于组件”(微软的COM)

C++11 之前存在的问题:缺少自动内存管理对象级别的消息发送机制

C++的特性

  • rvalue reference
  • move
  • unique_ptr / shared_ptr / weak_ptr
  • function/bind 和 lambda 机制
  • C++ Concurrency

推荐的书籍:

《C++ Premier》 5th

《C++标准程序库》

《Effective C++》

《C++ Concurrency in Action》

《Linux多线程服务端编程》


前言

C++11新标准的主要目标:

  • 使语言更为统一
  • 使标准库更简单、安全、使用更高效
  • 使编写高效率的抽象和库变得更简单

增加的一些新特性的举例:

  • 类型推断的auto
  • 智能指针和允许移动的容器

现代C++语言可以看作三部分组成的:

  • 低级语言,大部分继承自C语言。
  • 现代高级语言特性,允许我们定义自己的类型以及组织大规模程序和系统。
  • 标准库,它利用高级特性来提供有用的数据结构和算法。

阅读本书的基础知识: 使用过变量,编写、调用过函数,也使用过编译器。

本书结构:

第Ⅰ部分和第Ⅱ部分:C++语言和标准库的基础内容。

第Ⅲ部分和第Ⅳ部分:如何编写类形式的抽象类型。

源代码的访问地址:GitHub地址

分类:

阅读

标签:

读书

作者介绍

wallencai
V1

游戏行业-程序员