作为C++入门,可以看Lippman的Essential C++。这本书很薄,涉及到了C++关键的方面,但略过了大量的细节。作者写这本书的目的就在于希望C++入门者能够快速地了解C++、学习C++,并开展一些实际工作。
在有了C++的基础知识之后,即可在实践的过程中,逐步提升技能。实际开发中经常面对的一个问题,就是一些细节记不住,对于一些疑难杂症,还需要考究一些细节。为此,推荐Lippman的C++ Primer大部头,或者Stroustrup的C++程序设计。两者购买其一就可以了,另外一本可以通过电子件来弥补。
以上几本书,都是相对传统的写作方法。也算是C++初级阶段的读物。
与此相对的,从一些专题、疑难杂症等角度来引导读者的,也需要多看一些。姑且算作中级读本,首先推荐的当然是Meyers的Effective和More Effective:
接下来很有意思的是Sutter的Exceptional C++,这本书涉及到了大量的Effective和More Effective的内容,当然,也涉及到了一些设计模式的方面。
最后推荐的是侯捷老师的对象模型,其实这本书属于中高级了。这本书的内容更加有助于理解前面几本书的内容,非常值得推荐:
C++语言和C的区别就是面向对象,因而需要有相当的设计功底才能更好的设计出优秀的C++代码。在前面推荐的C++语言程序设计的后面几章,全面介绍了C++的设计方面。进一步地,推荐下面几本更加侧重于设计的C++书籍。姑且算作C++的高级读本。
Murray的这本书推荐看英文原版,中文的看过几页,比较起来,还是建议大家看E文。这本书用词比较有意思,有不少英文的一些习语,让阅读过程更加轻松。
下面这个新思维,应该也是众所周知的。阅读这本书需要具备设计模式方面的背景,否则还是别看了。——关于设计模式等设计的专题书籍推荐,后续再写。
除了以上的语言&设计的方面,在软件开发中,通常还有很多专题。比如性能提升、跨平台、库开发等,为此推荐以下几本,难度不一。
接下来补充STL方面的参考资料:
有一本黑封面的STL库的书、以及Effective STL。写代码时,只要涉及STL,就必须认真看看Effective STL。
对算法感兴趣的,还需要推荐侯捷老师的STL源码剖析:
gdb手册:https://sourceware.org/gdb/download/onlinedocs/
gcc手册:https://gcc.gnu.org/onlinedocs/
深入理解C++11.pdf: [http://download.csdn.net/detail/u013242154/8712023](http://download.csdn.net/detail/u013242154/8712023)