算起来,用C++已经有七八年时间,也有点能够分享的东西;
如下推荐的书籍大多有电子版。对于技术类书籍,电子版并不会带来一个好的阅读体验。若是喜欢,最好找纸版(图书馆是个好去处);电子版更适合做为一个参考书籍常备电脑。
我将分为基础篇、Windows篇、和Linux/Unix篇 三个部分来介绍这些经典书籍:
C++入门
《C++ Primer》html
个人C++入门读物是《 C++大学教程》,这本书800多页,因为学习时间长,一个学期学这么一本书,时间上的富裕,让我有充分的时间来吸取。书中80%的代码我都敲到PC上运行过;后来再看《C++ primer》的时候,也就一个星期的功夫翻完了。都是入门读物,介绍的也都全面。刚接触C++的朋友,至少应该将这方面的书好好过一遍。
语言技巧,性能优化
《 Effective C++》
《 C++必知必会》
《 More Effective C++》
有了语言基础以后,接着就是细节上的深刻,进一步领会C++的精髓。《 Effective C++》能够看做是一本C++ 疑难解惑手册; 对于C++语言层次深刻一点的东西,容易出错的知识点,在这边书上可找到满意解答;适合屡次品味。
《 C++必知必会》《 More Effective C++》则做为对Effective C++ 没有讲完的补充,可看做前者看完后意犹未尽时使用;
顺便说下,这三本书都不厚,小册子,每本也就几天的功夫就能够搞定;
底层硬货
C++源于C,对于指针、对于各类地址的偏移计算,对于大端小端的深入剖析,还得靠一些硬通货来解析;这两本书虽然说不厚,但读起来确实费劲,信息量很足,不少都是在平时C++使用中没有意识到的知识点,却又都是重要的点。让人有知其因此然的快感;
涉及到底层的东西,都是用来验证编程功底是否扎实。要想完全掌握C++底层的东西,仍是得看看专家编程,很好的两本书,指针等讲的很透彻。
STL
《 C++标准程序库》
《 STL源码剖析》
《 C++标准程序库》是属于百科全书类型,讲解基础,但语言平淡(是以参考手册的角度来写的),没有勇气将其所有翻完,捡感兴趣的和本身很缺少的部分看了看(里面关于智能指针方面的论述,还不错);
《
泛型编程与STL》里面对萃取机制及各泛型的概念论述很是透彻,前6章为主要篇章,不可跳过。后面的可在实践中编码练习或查找。 后面章节可在看完以后作为手册使用,对STL中的经常使用算法和容器进行了归类讲解,并给出了至关数量的示例。
《 STL源码剖析》每个推荐深刻STL的文章应该都少不了这本书。下面几个问题能够考查一下是否须要看看: 1.STL中DQueue的实现机制(数据结构式如何组织的,其迭代器的插入和删除过程当中的实现) 2.是否熟悉红黑树,可否叙述其插入和删除过程,如何调整。 3.萃取器的几种实现
Boost
当标准库没法再知足你的时候,就轮到Boost出场了。编程,讲究两个效率,一是开发效率,二是运行效率。与其它编译型语言相比(java、C#等),C++属于后者,运行效率不错,但开发效率着实低。除了C++更底层的缘由外,另外一方面的缘由就是标准库提供的功能不足。没有太多的工具,想实现什么都得本身来一遍,重复的造轮子的工做在程序员中不断上演;
Boost库是对C++标准库的扩展,让咱们在开发的过程当中有更多的工具能够选择。正则表达式、智能指针等工具都是很是有用的工具,而函数对象,Lambda则让咱们在编写C++的代码中更为优雅;
这里提供的一本书是Boost的入门经典。它的目的就是让你对boost产生兴趣。等有了兴趣以后,就直接上boost的官网吧,须要什么尽管拿。
设计模式
《 设计模式》
《 道法天然》
《 设计模式》是该领域的圣经,未全看完。虽然说经典,但一页一页的翻完,还真要点耐性。不像老外写书的风格,这本书看的很累(这也是一本参考手册)。我认为在对大部分模式都有必定的了解后再来看这本书,会找到不少兴趣点。
《
设计模式精解》个人设计模式之路是从这本书入门的,经过几个实例来解释模式的用法,以及为何要用模式(这个可能更重要),不过全书也就讲了10来个模式,意犹未尽。对设计模式感兴趣、初学者推荐;
《 道法天然》是国人写的很不错的一本书,用他们本身写的一个框架系统做为实例,贯穿全文,讲解各类模式的用法。看事后,体会到模式在大项目,特别是这种框架系统中的应用真是太到位了。同时,熟悉MFC的朋友会在本书中收获更多的东西,MFC也是一个框架系统,经过本书的讲解,能够体会到MFC的内部设计以及为什么如此设计(书中就专门讲到MFC中的设计思想),同时,在讲单件模式的时候,还带出了MFC中theApp的做用(为何要在MFC中安排一个theApp全局变量?这是我看到的惟一一本书解释了这个问题的);
算法篇
《 编程珠玑》
讲解数据结构和算法技巧的压轴好书。
基础篇就谈这些,后续将讨论C++的应用,Windows篇和Linux/Unix篇;
(原文地址:http://www.cnblogs.com/me115/archive/2012/12/26/2833346.html)