From:http://blog.csdn.net/is2120/article/details/44317241java
下面是转载的在博客上看到的一个C++书籍阅读清单,能够参考下:
阶段 1
《Essential C++》
这是一本内容很少但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不仅学到C++的函数和结构,也会学习到它们的设计目的和基本原理。
《C++ Primer》
本书对C++基本概念、技术、以及现代C++编程风格进行了全面并且权威的阐述,是C++初学者的最佳指南;本书能够帮助你编写实用的程序,而无需首先精通每一个语言细节。对于中高级程序员,本书也是不可或缺的参考书。
阶段 2
《Effective C++》和《More effective C++》
做者是Scott Meyers。你应该熟读它们,并清楚地理解每一个项目。该书围绕55条准则,每一条都介绍了一个可以让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。
《Exceptional C++(C++编程剖析)》和《More exceptional C++》
这两本书中都包含了40个C++编程问题,这些问题会让你磨练本身的技能,最终成为优秀的C++程序员。这些问题是Herb Sutter精心挑选,与ISO/ANSI C++官方标准相一致,帮助程序员在设计、架构和编码过程当中保持良好的风格,从而使编写的C++软件更健壮、更高效。
阶段 3
《Inside the C++ object model(深度探索C++对象模型)》
本书专一于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承,帮助你理解程序的底层实现,以便写出更高效的代码。
《The design and evolution of C++(C++语言的设计与演化)》
本书做者也是C++语言的设计者Bjarne Stroustrup,做者在书中综合性地介绍了C++的发展历史,C++中各类重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其将来的发展前景,既没有忽略关键性的详情,又没有过多地陷入技术细节。
阶段 4
《The C++ standard library(C++标准程序库)》
这是标准模板库字典,你能够在本书中找到STL相关的一切知识。本书焦点放在标准模板库、检查容器、迭代器、函数对象和STL算法上。每个元素都有深入的呈现,包括其介绍、设计、运用实例、细节解说、陷阱、意想不到的危险,以及相关类别和函数等。
《Effective STL》
这是Scott Meyers的第三本C++专著,也是学习STL最权威的书籍。做者对书中的50个指导方针都做了详尽的分析,并配以示例。经过这些规则,C++开发者能够最大限度地使用STL。
《Generic programming and the STL(泛型编程与STL)》
本书阐述了泛型程序设计的核心理念:concepts(概念)、modeling(模型)和refinement(改善),并为你展现这些观念如何导出STL的基础概念:iterators(迭代器)、containers(容器)和function objects(函数对象)。按照本书所述,你能够把STL想象成一个由concepts组成的library,你将学习到STL正式结构并理解其强大的优点。
阶段 5
《Exceptional C++ style》
做者为Herb Sutter。本书一样提出了40个C++风格相关的问题,对一些相当重要的C++细节和相互关系提出了新的看法,为当今的关键C++编程技术(如泛型编程、STL、异常安全等)提供了新的策略,帮助开发者在开销与功能之间、优雅与可维护性之间、灵活性与过度灵活之间寻找完美的平衡点。
《C++ template》
这是一本关于C++模板的完整的参考手册和教程,它强调模板的使用实践,包含了现实世界中的例子。每一个C++程序员都应该好好读一读这本书。
《Modern C++ design(现代C++设计)》
做者Andrei Alexandrescu为C++程序员打开了一个新的局面。本书提供了一些针对软件设计的前沿方法,如联合设计模式、泛型编程,使程序员能够编写有表现力的、灵活的、高度可重用的代码。
《Thinking in C++(C++编程思想)》
C++ 领域权威著做,介绍了C++实用的编程技术和最佳的实践方法。
程序员
JerryZhang 03/04/2012算法
声明:编程
英文水平有限,加上在 stackoverflow 混的人,母语都带必定的地方色彩,向咱们的 chinenglish。若是你以为有误,欢迎留言指正。设计模式
1.《C++程序设计语言》(Bjarne Stroustrup) [The C++ Programming Language]安全
评:经典的C++入门教材。能够和 K&R 的那本相媲美,读起来感受很是相似,它涵盖了全部 标准 C++ 语言的核心,面面俱到。这本书我没有读过,不作评价。“K&R” 的那本书指的是《C程序设计语言》,堪称经典, 这本书我有。读完以后,感受挺全面的,并且深深地能够感受到一丝 unix 气息。数据结构
2.C++标准程序库:自修教程与参考手册 (Nicolai josuttis) [C++ Standard Library Tutorial and Reference]架构
评:C++ 标准库的介绍和参考手册app
我的以为这本书是每一个 C++ 程序员的必备书籍,书如其名,就是一本手册。整本书都在讲述 C++ 库函数。若是你想学习 C++ STL 的话,选择这本书先熟悉一下 STL 是一个很不错的选择。我看过 3 遍,每一遍都会有新的收获。electron
3.The C++ IO Streams and Locales(Angelika Langer and Klaus Kreft)
评:除了 C++ IOstream 和 locales 以外,几乎没有其余的涉及。若是你想知道关于 stream 和 locale ,这本书是你最好的选择。
之前没听过这本书,我不多用 C++ IO 。习惯了 C 语言的格式化操做,总感受 C++ 这块作的很差。
4.The C++ Standard(INCITS/ISO/IEC 14882-2011)
评:This, of course, is the final arbiter of all that is or isn't C++. Be aware, however, that it is intended purely as a reference for experienced users willing to devote considerable time and effort to its understanding. As usual, the first release was quite expensive ($300+ US), but it has now been released in electronic form for $30US -- probably the least expensive of the reference books listed here.(我的没有能力翻译这段话,抱歉.)
若是你刚开始学习程序设计或者你有其余语言的使用经历,下面这些书籍高度推荐:
1.C++ primer (Stanley Lippman, Josée Lajoie, and Barbara E. Moo)
评:1000 页左右的厚度,很是周全的的 C++ 介绍,涵盖了语言的方方面面,讲解很是详细。
我是在看完《C++入门经典》以后看的《C++ primer》,而且以前学过 C 语言和数据结构。以为仍是有必定难度的,后面的面向对象和泛型几乎没怎么看懂。做为新手,这本书真的适合吗?我质疑。不过这本书的好是不能否认的,值得多看几遍。[针对第四版而言]
2.Accelerated C++(Andrew Koenig and Barbara Moo)
评: This basically covers the same ground as the C++ Primer, but does so on a fourth of its space. This is largely because it does not attempt to be an introduction to programming, but an introduction to C++ for people who've previously programmed in some other language. It has a steeper learning curve, but, for those who can cope with this, it is a very compact introduction into the language. (Historically, it broke new ground by being the first beginner's book using a modern approach at teaching the language.)
3.C++ 编程思想 (Bruce Eckel) [Thinking in C++]
评:一共两卷,第二卷大部分在讲解标准库,可是仍旧很是好。
4.C++程序设计原理与实践 (Bjarne Stroustrup)[Programming: Principles and Practice Using C++]
评:很是好,不仅是适合初学者的一本书。
没读过,可是很想读。
1.Effective C++
评:每一个C++程序员都应该读的书。早期版本针对从 C 转到 C++ 的程序员。第三版作了修改,程序定位在向 java 这样的语言转变过来的 C++ 程序员。改善程序与设计的55个具体作法。 提高 C++ 功力必备书籍,真的很棒。
2.Effective STL
有这本书,可是没有读完,不作评价。
1.More Effective C++ (Scott Meyers)
评:比 Effective C++ 更多的规则,没有 Effective C++ 那么重要,可是仍旧很应该知道。
我有这本书,感受里面的内容比 Effective C++ 要更细节和深刻,有一部分没有看懂。听不错的书。
2.Exceptional C++(Herb Sutter)
评:资源管理和在 RAII 中的异常安全。pimple idiom, name lookup, good class disign, 和 C++ 内存模型。
看评价就很想读了,等发工资了,果断买。
3.More Effective C++ (Herb sutter)
评:Effective C++ 的补充,包括异常安全的主题。除此以外,探讨了高效 C++ 面向对象编程和 STL 的错误使用。
4.Exceptional C++ style(Herb Sutter)
评:讨论泛型编程编程,优化和资源管理。还优秀的展示了怎么用 C++ 非成员函数和单一职责原则(single reponsibility principle)写模块化代码。
5.C++编码规范(Herb Sutter and Andrei Alexandrescu) [C++coding Standards]
评:编码规范并不意味着“在代码中缩进使用几个空格的问题”。这本书包含 101 个好的实践,风格(idioms),和常见的陷阱能够帮助你去写正确的,易于理解的而且高效的 C++ 代码
6.C++模板:彻底指南 (David Vandevoorde and Nicolai M. Josuttis) [C++ Template: The Complete Guide]
评:这是一本关于 C++ 模板的书籍。他涵盖了从最基础的到高级的模板元编程,很是详细的解释了模板的工做机理。对 ODR(One Defnition Rule)和重载的解析过程。
这本书我是在大二的寒假看的,当时刚学完 C++ 语言。多是基础不够的缘由吧,只看了全书的 1/3 ,即模板的基础部分,以后就没怎么看了。尽管如此,那 1/3 的基础部分为我在以后的 STL 学习打好了基础,获益匪浅。想要学好 STL 的同窗,必定要先去学模板,不然就至关于在被库函数。
1.Modern C++ Design (Andrei Alexandrescu)
评:这本书是高级泛型编程技巧开创性的书籍,引入了基于策略的设计,类型列表,和基本的泛型编程风格。解释了有多少有用的设计模式(包括小对象配置器,仿函数,工厂,访问者,和多方法)可使用泛型编程高效,模块化和干净的的实现。
A groundbreaking book on advanced generic programming techniques. Introduces policy-based design, type lists, and fundamental generic programming idioms then explains how many useful design patterns (including small object allocators, functors, factories, visitors, and multimethods) can be implemented efficiently, modularly, and cleanly using generic programming.
看内容就好像读啊!
2.C++模板元编程 (David Abrahams and Aleksey Gurtovoy) [C++ Template Metaprogramming]
标注:这些书中包括的一些信息可能再也不适合如今或者再也不是最好的实践方案。
1.C++语言的设计和演化 (Bjarne Stroustrup) [The Design and Evoution of C++]
评:若是你想知道为何C++语言成为如今这个样子,这本书会告诉你答案。这本书涵盖了 C++ 标准化以前的全部故事。
2.C++沉思录(Andrew Koenig and Barbara Moo) [Ruminations on C++]
3.Advanced C++ Programming Styles and Idioms (James Coplien)
评:A predecessor of the pattern movement, it describes many C++-specific "idioms". It's certainly a very good book and still worth a read if you can spare the time, but quite old and not up-to-date with current C++.
4.大规模C++软件设计 (John Lakos) [Large Scale C++ Software Design]
评:Lakos explains techniques to manage very big C++ software projects. Certainly a good read, if it only was up to date. It was written long before C++98, and misses on many features (e.g. namespaces) important for large scale projects. If you need to work in a big C++ software project, you might want to read it, although you need to take more than a grain of salt with it. There's been the rumor that Lakos is writing an up-to-date edition of the book for years.
5.深度探索C++对象模型 (Stanley Lippman) [Inside the C++ Object Model]
评:若是你想知道虚函数表机制是怎样实现的和在一个多继承状况下,基对象是怎么在内存布局,这些怎么对性能形成影响。你能够找到这些主题的深刻探讨。
正在看这本书,不是很好理解。若是你没有必定的基础的话,我建议先别看了,越看越乱。看完以后,才知道之前的不少理解都是有误的。这本书翻译的不太行啊,有能力的话仍是看英文版吧!
ps: 我给你本身定的目标的每周一篇质量博文,可是就我如今的水平来讲,每周一篇质量博文,有些难度。全部没有好的题材的话,之后就从 stackoverflow 找一些不错帖子来翻译吧。