A Tour of C++ 书评

Nov 8, 2020 · 878 words · 2 minutes read book c++


这本书是C++ creator的作品,主要面向有编程经验的读者,快速全面的介绍modern C++的特性。它前一半介绍语言特性,后一半介绍标准库,加起来就是C++这门语言的核心全部。说是modern C++,因为如今的C++(C++17/20)新增了很多易用的特性:比如auto pointer,range,lambda,concurrent support等等。这些特性使得如今的C++代码已经跟10年前我初学的时候很不一样了。书有250页,我用了两周大概20个小时才读完(并不像作者宣称的几个小时能读完)。读罢我对C++确实有了较为全面的认识,不仅仅是了解了一些语言特性和标准库的存在,同时学习了作者认为重要以及容易出错的地方,比如memory leak, resource copy or move…这有助于读者理解suggested solution背后原因,以及写出更安全高效的代码。

我觉得本书的优点有:

  • 权威:语言发明者的作品至少保证了知识的准确度和语言习惯。本书同时还有些从内到外由古及今的解析,可能很难从别的地方了解
  • 全面:涵盖了核心的绝大部分
  • 简短:两百多页,一半是代码

个人觉得缺点是难懂。 相比于2小时就能开心上手的a tour of go官网教学,本书有不少地方我要读好几遍才能大概明白作者要说什么,还有几个章节我始终云里雾里的,比如3.5 error handling,5.1 essential operations, 13 type functions - iterator_traits。我刚读不久就时不时感慨C++咋这么复杂。
当然这一方面主要是C++语言本身特性多且杂,因为设计和历史原因还有使用习惯和接口不一致等等问题,所以有的代码看的略懵;另一方面是作者想用非常简短的语言和例子尽可能多的展现特性背后的原因和演进,造成读者因为缺少相关细节而理解无能。。。

Anyway,正如作者书中所说

As in Chapters 1–7, you are strongly encouraged not to be distracted or discouraged by an incomplete understanding of details.

读者若遇阻碍,不必气馁。
C++这门语言之强如降龙十八掌,它以高效运用硬件的特性和管理软件复杂度的能力辉煌了30年岁月,如领袖一般活跃在网络、系统、机械、航天、金融、医疗等广泛领域。 它值得我们去慢慢钻研学习,就从这本书起。

Amazon link: A Tour of C++ (Second Edition)

back to top ↑