(轉貼) C++必读Bible (C/C++)
原作者為oosky,载于http://www.cppblog.com/oosky/archive/2005/11/07/966.html
我再加以排版潤色
1. <<The C++ Programming Language>> Bjarne Stroustrup
这是一本每个人都应该买但不一定要看的书,强烈建议初学者不要看这本书,否则可能会一头雾水,失去信心,BS写书本来就不怎么样,他自己都说他的书有些晦涩难懂,但是买一本放在书柜里,有什么不清楚的地方查查高人如何解析还是有必要的。
2. <<C++ Primer>> Stanley B. Lippman
Lippman的地位自然不用猜疑,此书也被评为C++的最佳入门书籍,也是Lipman写得最认真的一本书,第3版在国内98年就有了。全书可谓是C++大全,深度适当,比较适合初学者,或者想对C++和程序设计有大概了解的读者, 但就是比较厚,这也只能怪C++的源远流长,总是在打园场,不断增加新特性,让我们这群读者都不得不捧着这本大书品读。
3. <<effective C++ >> Scott Meyer 同下
4. <<more effective C++>> Scott Meyer
这年本书乃是改善设计思维和设计思想的必读书籍,书中每个item莫不是经过千锤百炼之后得出。其中,effective比较浅显易懂,每个item都比较短,而more设计思想更进一层,有些item已经多多少少有设计模式的味道。建议初学者在看完一本C++比较完整的书后直接拜读此2书。
5. <<The C++ standard library : A Tutorial and Reference>> Nicolai M. Josuttis
就是现在卖得比较热的书,语言很通顺,技术上也很好,只是书中有些代码我是调试不过,或许只能怪STL里面有几个经典错误,不知看这本书的读者发现了没有?我严重建议C++的初学者看这本书,先知道应该怎么来用C++,怎么来充分利用标准库,而不是一头钻入C++的庞大晦涩语法里面,先用标准库才能养成良好的代码编写风格,更可以提高自己的实作能力,否则你如果花上一年半载在C++的语言细节上,可能自己都生气为什么还是写不出好的程序出来,公欲善其事,必先利其器就是这个道理。
6. <<Modern C++ Design>> Andrei Alexandrescu
一本天才的著作!泛型模式,无限延伸你的视野,足以挑战任何一名C++程序员的思维极限。这本书几乎可以满足你对C++模板的所有幻想。
7. <<C++ Templates>>: The Complete Guide by David Vandevoorde,
Nicolai M. Josuttis Alexandrescu的Modern C++ Design阅读门槛很高,这本书可以充当你的垫脚石。单单阅读The C++ Standard Library或许并不足以使你具备定制、扩充标准库组件的能力,这本书可以助你一臂之力。对于任何希望进入模板编程领域的C++程序员来说,这是一本必读之作。
8. <<Exceptional C++ 和More Exceptional C++>> Herb Sutter
Herb Sutter的书读起来比较轻松,此2书可以作为effective与more effective的姐妹篇,写作风格有些如苏格拉底的提问式教学,但应用得还不够火候。书的内容确实不错,定位和effective差不多,但我个人而言还是更喜欢Meyer的书。
9. <<Essential C++>> Stanley B.Lippman
很简单的一本书,初学者如果觉得自己确实很菜可以先看这本书,你肯定能看懂,也lippman的书,但英文版有些地方值得商榷,还是看候节的中文版吧,翻译得还可以,就是台湾味道太浓了些,有点喧宾夺主之嫌。如了门的读者就没必要看这本书了,看它还不如看lippman的inside the C++ object model呢。
10 . <<Designing and Coding Reusable C++>> Martin D. Carroll, Margaret A. Ellis
关于重用和程序库设计的一本书,是由AT&T的Ellis夫妇写的,书写得很好,充分考虑了设计可重用程序库的方方面面,对于每个想设计程序库和的读者都应该看这本书。
11. <<Thinking in C++>> Bruce Eckel
作者在序言里面也写了,此书是用作《C++ Primer》的入门铺垫的。讲得也不错。但我觉得如果看后者没什么问题,这书可以只翻翻就行。
12. <<Runminations on C++>> Andrew Koenig, Babara E. Moo
据说人邮既要出版了,是由konnig夫妇写的,如果你想知道cfront的历史,还想清楚cfront的领导者,就找他们夫妇吧,那时,konig和BS是独立的,而其它的人都是由konig夫人Barbara领导的,konig在C++中可算是number 2,属于学术派的那种,实际上C++也是分派别的。 英文版的质量肯定很好,有很多新的设计观念。
13. <<Accelerated C++>> Andrew Koenig, Babara E. Moo
也是koenig和Barbara夫妇写的,这书主要是讲入门的人如何快速上手使用C++的,对C++的基础概念、库的使用讲得多。使用这书的确很容易上手。
14. <<The Design and Evolution of C++>>Bjarne Stroustrup
如果你只打算购买一本书,那就选择1,如果还想要第二本 — 那就是这两本了。它们的作者是 C++语言的创建者。Stroustrup的文字语言丝毫不逊色于他所创建的程序语言。它们可以使你免于误入歧途。
15. <<Inside the C++ Object Model>> Stanley B. Lippman
我自己现在也在看这本书,对C++对象模型介绍的非常好,是深入了解C++的资料书籍。C++学习应该从两个方面来学习,首先学习C++语言层面,也就是C++语法,如果深入学习的话就会进入C++底层。。。第二个层面就是对象,设计很广泛:对象设计,对象复用,STL,COM,BOOST。
16. <<Effective STL>> Scott Meyers
我强烈推荐Meyers这个系列。它们是菜鸟进阶必读之作。游刃有余的技术,高超的写作技巧。Meyers可能是世界上最优秀的C++技术作家。
19. <<Design Patterns>> Erich Gamma , Richard Helm, Ralph Johnson, John Vlissides
设计可复用的面向对象的软件,你需要掌握设计模式。这并不是一本专门针对C++程序员的著作,但它采用了C++(和Smalltalk)作为主要示例语言,C++程序员尤其易于从中受益。学习设计模式,这本书需要一而再、再而三的咀嚼。