hitmanx
2016-01-04 12:59:32 +08:00
仅从学习的角度上来说,c++真是可以很庞大的.所以我现在深深地觉得够用就好了,不过这儿还是可以说说我走过的弯路.
基本的语法知道后,还得阅读<effective c++>之类去了解它的坑吧.好多人都说这本书是宝书,每一遍都会有新的体会.我很同意 bobuick,spww 说的,这本书没有足够的工程经验,要完全理解是很困难的,这也是为什么很多人要看很多遍的原因.然后可能会觉得书中有些坑很奇怪,想了解得更透彻,于是 google 一番,发现有人推荐<深入理解对象模型>,这本书能完整啃下来也很难.
STL 起码得会用吧,有人会推荐厚厚的大部头<C++标准程序库>(虽然其实大部分是例子且只看常用的部分的话也还习惯你).然后就会有人说要彻底了解 STL,你得看<STL 源码剖析>.
以为终于差不多了吧,发现很多项目在用 c++11 了,那得找本系统介绍 c++11 的书看看吧,比如 Scott Meyers 大婶的或者 IBM 出的那本.然后发现 c++11 里又增加了很多新的库,比如 thread library.以上的书还没介绍,那就得再搜点资料看看.然后可能还会碰到例如 std::regex 在 gcc 4.6/4.7 里已经定义,但未完全实现之类的坑.
boost 用的也很广,也得看看吧?又有很多人不满意停留在会用上,欢快地去读它的源码了.
以上还不涉及到阅读过程中其它的知识,例如标准库里涉及到的系统调用等\深度探索 c++模型里涉及到的编译相关的知识,stl 里涉及到的算法知识,甚至单独的例如设计模式之类的.
终于感觉差不多了吧?你去读一些比较复杂的开源库(或者很不幸像我一样发现工作的项目里就有人用了这种技巧,虽然很讨厌,但是能怎么办呢)发现还是读不懂,很可能里面用了一些高级的模板技巧甚至模板元编程,于是你又想去读<C++ templates complete guide>或者<Modern C++ pattern>.这两本能啃完的那也不是一般人了.