很多人鼓吹c++ primer,有一句特别经典的话在牛客,当时很多精华帖子都说过,甚至侯捷,一个著名的c++开发者,也鼓吹过这本书,原话大概是:如果不能沉淀进大部头,好好学c++primer,那就是你的问题,你只知道吃快餐,学少的东西,永远成不了大师。 我强烈反对,甚至鄙视,唾弃(我不得不用如此苛刻的词汇来表达)这种观点。 c++ primer讲的好吗? 平心而论,c++ primer是一本很烂的书。 它试图用项目的角度教会你如何去写c++,在原理上模棱两可,只言片语。这绝不是危言耸听。 举一个例子,rvalue reference,c++ primer对为什么要这么做,这么做的原理是什么。到底是怎么移动的,优化在哪里了?这些非常核心的问题避而不谈。 c++ 11 最核心的部分之一,并发,它甚至几乎没有提及。 虚函数底层是如何实现的?编译的过程中发生了什么?这些问题我想一个真正的计算机科学的学习者,是不愿意避而不谈的。还有所谓的三五法则,什么叫法则?law? 既然是law,有证明吗? 没有,也配称得上法则吗? 我想,科学严谨的思维,形式化的证明,逻辑的严密性,计算机的思维,数学的思维,在这本书上都没有半毛钱的体现。这本书只适合用来做个入门,而且是最最基础的入门。 通过它获取知识的效率很低。 如果让今天的我推荐,我绝对不会推荐学生时代的我去看c++ primer。 而是去看深度探索c++14。当然这不是我想说的,换一本书,而是找到那个符合你口味,能够让你接受的信息,而不是书去选择人,书并不配去选择你。 effective系列,尤其是modern,以及深度探索c++对象模型都是非常适合我们去看的。 其中提到的std,boost,渗透在工程里面的思想会让人受益匪浅。 以及这本书https://github.com/xiaoweiChen/Cpp_Concurrency_In_Action 能够更好的帮助你学习c++的并发开发。