C++阅读渐进书目

来源:互联网 发布:2016年四川旅游数据 编辑:程序博客网 时间:2024/04/30 13:32

《 Inside the C++ ObjectModel》我自己现在也在看这本书,对C++对象模型介绍的非常好,是深入了解C++的资料书籍。C++学习应该从两个方面来学习,首先学习C++语言层面,也就是C++语法,如果深入学习的话就会进入C++底层。。。第二个层面就是对象,设计很广泛:对象设计,对象复用,STL,COM,BOOST。。。
 
1. 《The C++ Programming Language》 (Special 3rd Edition) by Bjarne Stroustrup
C++之父著作的大头作,非常不错,很厚,对C++介绍的非常详细。
 
2. 《The Design and Evolution of C++》 by Bjarne Stroustrup
如果你只打算购买一本书,那就选择1,如果还想要第二本 — 那就是这两本了。它们的作者是 C++语言的创建者。Stroustrup的文字语言丝毫不逊色于他所创建的程序语言。它们可以使你免于误入歧途。
 
3. 《Effective C++》: 50 Specific Ways to Improve Your Programs and Designs
 by Scott Meyers
 
4. 《More Effective C++》: 35 New Ways to Improve Your Programs and Designs
 by Scott Meyers
 
5. 《Effective STL》: 50 Specific Ways to Improve Your Use of the Standard Template Library by Scott Meyers
我强烈推荐Meyers这个系列。它们是菜鸟进阶必读之作。游刃有余的技术,高超的写作技巧。Meyers可能是世界上最优秀的C++技术作家。
 
6. 《The C++ Standard Library》 : A Tutorial and Reference by Nicolai M. Josuttis
C++标准库字典式著作。内容全面,结构清晰。
 
7. 《C++ Templates》: The Complete Guide by David Vandevoorde,
Nicolai M. Josuttis Alexandrescu的Modern C++Design阅读门槛很高,这本书可以充当你的垫脚石。单单阅读The C++ StandardLibrary或许并不足以使你具备定制、扩充标准库组件的能力,这本书可以助你一臂之力。对于任何希望进入模板编程领域的C++程序员来说,这是一本必读之作。
 
8. 《Modern C++ Design》: Generic Programming and Design Patterns Applied
 by Andrei Alexandrescu
一本天才的著作!泛型模式,无限延伸你的视野,足以挑战任何一名C++程序员的思维极限。这本书几乎可以满足你对C++模板的所有幻想。
 
9. 《Design Patterns》
 by Erich Gamma , Richard Helm, Ralph Johnson, John Vlissides
设计可复用的面向对象的软件,你需要掌握设计模式。这并不是一本专门针对C++程序员的著作,但它采用了C++(和Smalltalk)作为主要示例语言,C++程序员尤其易于从中受益。学习设计模式,这本书需要一而再、再而三的咀嚼。
 
再贴:
推荐C++教程
 
1. <<The C++ Programming Language>> , Bjarne Stroustrup
这是一本每个人都应该买但不一定要看的书,强烈建议初学者不要看这本书,否则可能会一头雾水,失去信心,BS写书本来就不怎么样,他自己都说他的书有些晦涩难懂,但是买一本放在书柜里,有什么不清楚的地方查查高人如何解析还是有必要的。中文版是裘老师翻译的,以裘老师的深厚功力,技术上大家大可放心,但语言流畅上我就不敢认同了,况且这还是一本大书,如果要追求语言流畅的话,可能没有两3年是出不来的,而且国内的出版社又那么急功近利,稿酬不高,做得那么好有必要吗?
 
2. <<C++ Primer>> , lippman
lippman的地位自然不用猜疑,此书也被评为C++的最佳入门书籍,也是Lipman写得最认真的一本书,第3版在国内98年就有了。全书可谓是C++大全,深度适当,比较适合初学者,或者想对C++和程序设计有大概了解的读者,但就是比较厚,这也只能怪C++的源远流长,总是在打园场,不断增加新特性,让我们这群读者都不得不捧着这本大书品读。中文版是潘老师翻译的,文字通顺,但缺乏味道,看着一本千来页的书,而且前面一部分讲的都是程序设计思想,容易令人产生困倦,也难怪很多人半道出家学java。
 
3. <<effective C++ >> Scott meyer 同下
 
4. <<more effective C++>> , meyer
这年本书乃是改善设计思维和设计思想的必读书籍,书中每个item莫不是经过千锤百炼之后得出。其中,effective比较浅显易懂,每个item都比较短,而more设计思想更进一层,有些item已经多多少少有设计模式的味道。我看过的是繁体版,这两本书候老师翻译得不错(我觉得是候老师翻译得最好的两本书,比较认真),读起来比较有味道。建议初学者在看完一本C++比较完整的书后直接拜读此2书。
 
5. <<The C++ standard library>>
就是现在卖得比较热的书,梦魇和候节翻译的,翻译得很好,语言很通顺,技术上也很好,只是书中有些代码我是调试不过,或许只能怪STL里面有几个经典错误,不知看这本书的读者发现了没有?我严重建议C++的初学者看这本书,先知道应该怎么来用C++,怎么来充分利用标准库,而不是一头钻入C++的庞大晦涩语法里面,先用标准库才能养成良好的代码编写风格,更可以提高自己的实作能力,否则你如果花上一年半载在C++的语言细节上,可能自己都生气为什么还是写不出好的程序出来,公欲善其事,必先利其器就是这个道理。
 
 
6. <<modern C++ design >> Andrei Alexandrescu
这是天才AndreiAlexandrescu的作品,很好的一本高阶书,此书我只是浏览一下大概,没有仔细看,有些地方看不懂,全书把C++和设计模式融为一体,向人展示了许多不平常的设计技巧与设计规范,令人折服。但有些难度,还望各位慎重。至于里面的技术实不实用,就要因人而异了。
 
 
7. <<C++ Template>> 据说书中展示了模板的精华之处
 
 
8. <<exceptional C++ 和more exceptional C++>>
Herb Sutter的书读起来比较轻松,此2书可以作为effective与moreeffective的姐妹篇,写作风格有些如苏格拉底的提问式教学,但应用得还不够火候。书的内容确实不错,定位和effective差不多,但我个人而言还是更喜欢Meyer的书。More有中文版,有Lostmouse翻译,质量一般,翻译给人的感觉比较仓促,很多地方都过于直译,味道怪怪的。
 
 
9. <<essential C++>> lippman很简单的一本书,初学者如果觉得自己确实很菜可以先看这本书,你肯定能看懂,也是lippman的书,但英文版有些地方值得商榷,还是看候节的中文版吧,翻译得还可以,就是台湾味道太浓了些,有点喧宾夺主之嫌。如了门的读者就没必要看这本书了,看它还不如看lippman的inside the C++object model呢。
 
 
10 . <<designing and codingreusable C++>>关于重用和程序库设计的一本书,是由AT&T的Ellis夫妇写的,书写得很好,充分考虑了设计可重用程序库的方方面面,对于每个想设计程序库和的读者都应该看这本书,中文版名是《设计和重用C++程序库》,即将出版。
 
 
11. <<thinking in C++>> 我是觉得此书一般,并没有外面吹的那么好,可以说是中等偏上吧,要看就要看英文版的,中文版的千万别看,那个译者太不负责了
 
12. <<Runmination on C++>>据说人邮既要出版了,是由konnig夫妇写的,如果你想知道cfront的历史,还想清楚cfront的领导者,就找他们夫妇吧,那时,konig和BS是独立的,而其它的人都是由konig夫人Barbara领导的,konig在C++中可算是number2,属于学术派的那种,实际上C++也是分派别的。 英文版的质量肯定很好,有很多新的设计观念,中文版还要期待,看看结果如何。
 
13. <<16Accelerated C++>> 也是koenig和Barbara夫妇写的,据说很好,但我没机会看,实在不敢评价。
 
14 <<C语言接口与实现:创建可重用软件的技术>>
 
"<<Accelerated C++>> 也是koenig和Barbara夫妇写的,据说很好,但我没机会看,实在不敢评价。 "
 
这书主要是讲入门的人如何快速上手使用C++的,对C++的基础概念、库的使用讲得多。使用这书的确很容易上手。
 
“<<thinking in C++>> ”,作者在序言里面也写了,此书是用作《C++ Primer》的入门铺垫的。讲得也不错。但我觉得如果看后者没什么问题,这书可以只翻翻就行。
 
“<<C++ Template>> 据说书中展示了模板的精华之处”模板相关的书听说这书不错的,我下到的不知道是不是完整的版本。
 
《Effective STL》这书怎么说呢,使用STL的确用这书容易上手,但其中的有些条目得出的结论会让你莫名其妙,除非你先看过《The C++ Standard Library》。
 
《The C++Programminglanguage》,这书就不用讲了。以前曾以为若能通读此书无甚困惑,C++即至中高级水准,现在看来还不止。但正如楼上同仁所讲,这书因为作者就是C++的始作俑者,所以讲述的题目往往是信手拈来,只讲自己觉得重要的。其实遗漏了不少地方。绝对不适合初学者使用的。
 
最后想说的几句,C++本身从C里面继承了不少特性,特别关于数据类型转换的东东,特别让人头晕。
C++本身的设计是即可以作为库使用,也可以作为语言使用。而且试图通过使用库来扩大语言的功能。这就给学习者很多困惑,因为很多特性和知识都是涉及在库的设计方面。如果觉得困惑也不要气馁。其实如果看过《Accelerated C++》和《C++Primer》,C++的使用应该是没有什么问题的。
 
但如果要作为一个库的设计者来说,即使这些书都看完了。也不一定能解决你的困惑的。再去看看ISO的C++标准吧。然后使用GCC,开源的编译器可以让你找出困惑你的C++精微之处。