C/C++书籍

经过半天的搜索整理下面一些C/C++coder应该看的书籍:

先引用一位大侠的总结:

1。有计算机基础的话下一步,没有就看《深入理解计算机系统》;
2。有其它计算机语言基础的话下一步,从没接触过计算机语言就先学习一下QBASIC;
3。有微处理器基础的话下一步,没有就先学intel微处理器结构、编程与接口;
4。学过汇编就下一步,没有就学习《80X86汇编语言程序设计教程》,杨季文的,网上说的什么王爽的不推荐;
5。《C primer plus》、《C专家编程》、《C和指针》、《C陷阱与缺陷》;
6。如果你想直接学习C++,上述第五步也可以不做,直接学习C++不会有什么问题,但日后当你需要C编码的时候,很有可能需要重新学习一下C,别被其它人所谓学了C++可以不用学C忽悠了,两者有很大不同的。
7。《C++ primer plus》;
8。《C++ primer》;这本书每一页都要看,其它书可以跳,但这本不行,其实对于计算机书籍来说,这一本只是有点厚,不算太厚啦;
9。《标准C++输入输出流与本地化》;虽说现在的界面基本上都是基于GDI的,但学习一下流对于语言的学习依然有很大的意义,特别是其中的本地化,可以视作以后学习UNICODE的基础;
10。《C++ template》;如果暂时对模板不感兴趣,可以跳过,以后再读;
11。《深度探索C++对象模型》、《C++沉思录》;
12。《C++标准程序库》
13。《代码大全2》;
14。从这里开始可以自己选择windows或者linux其中一个方向学习啦;
15。《effective C++》、《more effective C++》、《effective STL

16。《C++应用程序性能优化》、《提高C++性能的编程技术》、《C++高效编程:内存与性能优化》;
17。《STL源码剖析》、boost;
18。《设计模式》(Design Patterns)
19。《C++模板元编程》

补充两本:

《windows核心编程》

《unix环境高级编程》(《鸟哥的私房菜第三版》为基础)

下面说一下我的一些补充:

《C++基础》(Essential C++)

《Exceptional C++》 《More Exceptional C++》《Exceptional C++ Style》

《The C++ programing Language》

《Imperfect c++》描述了 C++ 一些缺点, 并提供对应的解决方案

《Boost程序库完全开发指南:深入C++"准"标准库》Boost是一套开放源代码、高度可移植的C++库。

《代码优化:有效使用内存》本书正好教你如何用C/C++测试CPU的Cache大小、速率、命中率或者缺失率等信息。

International Standard for C++》和《Modern C++ Design》来自:http://blog.csdn.net/lxwde/article/details/1089557

《C++必知必会》使用C++必须知道的一些东西

《C++设计新思维》让你目瞪口呆的模板技巧

《Effective STL》使用 STL 的一些条款

建议看一看“给C++初学者的50个忠告”


下面貌似是以前的帖子,很详细很全面,结合上面的介绍几乎囊括了所有的C/C++书籍,想怎么看自己看着选吧~~

可参考http://zhidao.baidu.com/question/126167911.html?si=4

视频http://www.enet.com.cn/eschool/video/c++/
书的话
语言基础入门:
1. C++ Primer 《C++入门》(通常不用中文名)
by Stanley B. Lippman
有第三版和第四版,如其名,是C++入门的不二选择,是全面广泛的参考书目,内容丰富,笔触严谨。
如果说Bjarne Stroustrup是C++之父的话,那么Lippman可以说是C++之母了:)
晨星:适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。
2. The C++ Programming Language 《C++程序设计语言》
by Bjarne Stroustrup
有第三版特别版,刚刚为一个朋友买了一本,不用说了 Bjarne Stroustrup写的,权威之作,可以说与C++ Primer是同等广博的“圣经”级别
的参考书。
晨星:简称TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The C Programmer Language》区分开来)
3. Essential C++ 《C++基础》
by Stanley B. Lippman
同样是入门的基础,也是由Stanley B. Lippman执笔的作品,研究语法÷语意再好不过的了。
4. Accelerated C++
by Andrew Koenig and Barbara E. Moo
夫妻一同的作品,Koenig夫妇可以说也是顶尖领域的专家,相比Barbara E. Moo比较注重教学,这本本人同晨星老大一样没有读过,当时它的
副标题应该能说明一些内容了吧。
Practical Programming by Example 通过实例来实践编程
晨星:这两本薄一些,都是不错的选择。《Accelerated C++》本人没有读过,从各方面的评价来看,完全值得推荐。
以上的书籍都应该随手查阅的,即使是将来,也有一些细节可能一下不能回忆依然需要查阅,然而这四本内容涉及程度有一定的交叉,可以选
择而读,个人认为和晨星的建议一样:TC++PL是应该阅读的。
进阶A,经验与惯用法:
5. Effective C++ , More Effective C++
by Scott Meyers
这几本我认为应当归在一起介绍,老实说这些条款是开发项目以及平时学习中不可缺少的Golden Tips,反复阅读,你会发现这些条款实在是再
深刻不过的了。
晨星:简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The Pragmatic Programmer》一书中写到:“一旦
你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott Mayer的《Effective C++》,可能还要《More Effective C++》”。
可见晨星对于Scott Meyers的这两本推荐的程度了!
6. Exceptional C++ , More Exceptional C++ , Exceptional C++ Style
by Herb Sutter
这三本也是该归在一起的,Herb Sutter是C++标准委员会的老大,现在人在微软,他的书当然也是相当具有启发意义的。
7. C++ Coding Standards: 101 Rules, Guidelines, and Best Practices 《C++ 编程规范》
by Herb Sutter and Andrei Alexandrescu
这本最近又看了一遍也是感到尤其深刻,案头书的描述再好不过了,里面丰富的名言,丰富的内涵,以及每次重复阅读都能有新的发现,哎,
不称之为经典也不幸哎!
晨星:个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系列都在这里得到了总结。最新的模板、异常的业界经验
都在这里的到了体现。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。
我的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。我认为这本书中的内容至
少在2009年以前都不会过时,人们将广为传诵它制定的101条戒律。
还不知道他的简称,也许“101”会成为一个候选者?
晨星的评论似乎有点冗长,作为进阶的Guidelines,绝对是首选。
进阶B,STL与范型(GP):
作为标准库的一部分,STL已经深入我们的开发生活,vector,list,deque,set,map等等都是我们首选的容器,iterator的机制已经无可厚非地
被接受,STL引入的范型也给我们打开了一闪窗。
8. The C++ Standard Library 《C++标准程序库-自修教程与参考手册》
A Tutorial and Reference by Nicolai M.Josuttis,
STL怎么用?看看本书吧。Nicolai M.Josuttis好像也是C++标准委员会的成员,也是C++ Template的作者。
晨星:听说过STL吗?这本书会教你最基本的,也是最重要的STL的使用。这本书,应该是必读的。
9. Effective STL
简单的使用后的提升
晨星:会使用STL还不够,还必须知道什么时候选择什么STL组件,这是STL使用的必读书。
10. Generic Programming and the STL: Using and Extending the C++ Standard Template Libra 《泛型编程与STL》。
Using and Extending the C++ Standard Template library by Matthew H.Austern
书的副标题很谦虚,似乎说本书只是使用和扩展,其实本书可谓GP理论入门的必读,STL的内涵与设计都可以看到
晨星:这本书理论性较强,但是真的很严谨,而且并不是非常难懂。理解其中对于Concept的解释,将是非常重要的。
11. C++ Standard Template Library 《C++ STL》
by P.J.Plauger,Alexander A.Stepanov, Meng Lee,David R.Musser
两位STL库的设计人员P.J.Plauger和Meng Lee,讲述STL实现的原理
晨星:这不是讲述使用程序库的,而是讲述程序库实现原理的。肠胃不好的,需要慢慢吸收。
12. C++ Template 《C++模板》
by David Vandevoorde, Nicolai M. Josuttis
本书可谓全面介绍了模板的使用细则,当然本人认为介绍的细节不是很细致,归类不如C++ Primer,当然模板的基本用法都可以看到。
晨星:在阅读STL、Boost或者Loki的源代码之前,请仔细阅读本书,它可以减轻一些阅读的烦恼。这本书是讨论C++模板的权威。
C++ Template Metaprogramming : Concepts, Tools, and Techniques from Boost and Beyond
by David Abrahams and Aleksey Gurtovoy
本书没有看到中文版,也是一本介绍模板元编程的专业参考书,十分细致地讲述了高级的模板技术,只是本书只有英文版的。
再进阶A,底层机制:
13. The Annotated C++ Reference Manual
by Margaret A.Ellis and Bjarne Stroustrup
标准库的全面解析,BS老大为标准库量身定做的很OFFICAL的参考。
简称:ARM
14. Inside the C++ Object Model 《深度探索C++物件模型》
by Stanley Lippman
即使反复学习了进阶A,依然有许多语言实现方面的Puzzle问题,尤其是虚继承,临时对象等令人麻烦的深层问题值得学习,Lippman以一位专
家的身份给了我们一个深窥语言内部的可能,正如晨星所言,Lippman的书都有C和底层实现的影子。
晨星:C程序员读后一定会觉得C++原来并不神秘。
再进阶B,设计模式:
15. Design Patterns - Elements of Reusable Object oriented Software 《设计模式》
by Erich Gamma,Richard Helm,Ralph Johnson,and John Vlissides
老实说不应该把设计概念的东西拿到这里来,当时本书大多数以C++语言为例子,也是我们应该学习的。
GoF听说过吗?Gang of Four四人帮:)就是说的本文的四位作者,他们是设计模式总结的先驱,看了本书之后,OO的设计模式会深入里的大脑。
由于模式的粒度过大,所以不能被代码化,只是一种概念,可以说是体现在项目中的灵魂。
还要提到的是最近John Vlissides去世了,在此我对他的逝世感到万分的惋惜。
16. Modern C++ Design : Generic Programming and Design Patterns Applied 《C++设计新思维》
by Andrei Alexandrescu
本书最近好好地研究过了,这里终于要介绍Andrei Alexandrescu了,他是Real公司的项目经理,是GP模板技术的天才,他的高深模板技术影响
了BOOST以及全世界的模板怪杰,本书中他介绍他的库Loki,虽然库十分激进没有实际用途,当时展现的绚烂的特技令人叹服!同时本书是设计
模式用范型实现的经典展现,以及Policy设计模式在其中的极致应用,直接影响了BOOST的adaptor设计(7个Policy)甚至影响了标准库的智能
指针项目(虽然最后被否认了,当时绝对是完美的实现方法)
晨星:简称MCD。在阅读MCD之前,建议先阅读一下《C++ Template》。
其他:
17. Thinking in C++ 《C++编程思想》
by Bruce Eckel
本书本人只是瞄了一眼,似乎第二本实用编程技术比较有用。
晨星:这本书及其中文版传言好坏都有,没有认真看过,不做评价,如果确有兴趣,不妨尝试一下该书。
18. C++必知必会
by
如同101一样,当然也是权威的作品,只是没有遇到好的天时而已。
晨星:如果早一年,这本书将是重量级的,然而它被101和《Exceptional C++ Style》盖过一头。
19. C++ Gotchas: Avoiding Common Problems in Coding and Design 《C++程序设计陷阱》
by
常规,曾经有许多人让我去看此书,可惜一直没有去看的精力,于是搁置许久,当时深刻了解此书中被引用内容的权威,好评也是不断。
晨星:这又是一本我未曾读过,而且广受好评的书。
20. STL 源码剖析
by 候捷
最近刚刚看了电子版,少有的国人之作,内容方面还可以,只是一些候氏方言令人头疼。
晨星:这本书我刚到手,就被人"借"走,以至于到现在也没有看过。看过这本书的朋友,可以给一个合适的评价。
其他高级:
21. The Design and Evolution of C++ 《C++语方的设计和演化》
by Bjarne Stroustrup
又是BS老大的一本,值得一看
晨星:简称D&E,内容并不艰深,Bjarne的书,仅此,就值得一读。
前段时间,互动网曾8块一本(人民币)贱卖此书,现在好像没了。
如果有我一定屯个N本:)
22. 《对象揭秘:Java、Eiffel和C++》
by
没有看过,所以没有资格作评论
晨星:你对C++不满吗?这本书可以部分地帮你完成抱怨的目标。也许它还可以让你不迷信C++。
23. Imperfect C++ 《不完美的C++》
by Matthew Wilson
新书,本书介绍了许多新一代技术,以及C++很多有趣的技术,BS本来想把它加入C++ In Depths行列的,可惜最后说了一句:“如果本书再少
一些,也许我会考虑的。”就完了,但是无论如何本书都是一本好书,值得一看。
最后提一下C++ In Depths系列,这个是Bjarne Stroustrup发起的将一些比较有价值的有意义的好书归成一类的选集。这里是英文的介绍:
Accelerated C++: Practical Programming by Example, Andrew Koenig and Barbara E. Moo
Applied C++: Practical Techniques for Building Better Software, Philip Romanik and Amy Muntz
The Boost Graph Library: User Guide and Reference Manual, Jeremy G. Siek, Lie-Quan Lee, and Andrew Lumsdaine
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices, Herb Sutter and Andrei Alexandrescu
C++ In-Depth Box Set, Bjarne Stroustrup, Andrei Alexandrescu, Andrew Koenig, Barbara E. Moo, Stanley B. Lippman, and Herb
Sutter
C++ Network Programming, Volume 1: Mastering Complexity with ACE and Patterns, Douglas C. Schmidt and Stephen D. Huston
C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks, Douglas C. Schmidt and Stephen D. Huston
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond, David Abrahams and Aleksey Gurtovoy
Essential C++, Stanley B. Lippman
Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions, Herb Sutter
Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions, Herb Sutter
Modern C++ Design: Generic Programming and Design Patterns Applied, Andrei Alexandrescu
More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions, Herb Sutter
For more information, check out the series web site at www.awprofessional.com/series/indepth/

不够全,补充两本 
1. The C++ Standard Library Extensions A Tutorial and Reference  
By Pete Becker  
学习C++的标准库扩展TR1的内容 

2.Beyond the C++ Standard Library: An Introduction to Boost  
By Bj?rn Karlsson  
Boost入门 

书太多,主要就是看你自己处于什么位置需要看什么书,有时间可以瞅一下下面的定位:

推荐的C++书籍以及阅读顺序,当读者有一定c/c++基础,推荐的阅读顺序:
level 1
从<<essential c++>>开始,短小精悍,可以对c++能进一步了解其特性
以<<c++ primer>>作字典和课外读物,因为太厚不可能一口气看完

level 2
然后从<<effective c++>>开始转职,这是圣经,请遵守10诫,要经常看,没事就拿来翻翻
接着是<<exceptional c++>>,个人认为Herb Sutter主席大人的语言表达能力不及Scott Meyers总是在教育第一线的好
顺下来就是<<more effective c++>>和<<more exceptional c++>>,请熟读并牢记各条款
当你读到这里,应该会有一股升级的冲动了

level 3
<<insied the c++ object model>>看过后如一缕清风扫去一直以来你对语言的疑惑,你终于能明白compiler到底都背着你做了些什么了,这本书要细细回味,比较难啃,最好反复看几遍,加深印象
看完上一本之后,这本<<The design and evolution of c++>>会重演一次当年C++他爹在设计整个语言过程中的历程

level 4
<<the c++ standard library>>是stl的字典,要什么都可以查得到
学c++不能不学stl,那么首先是<<effective stl>>,它和圣经一样是你日常行为的规范
<<generic programming and the stl>>让你从oo向gp转变
光用不行,我们还有必要了解stl的工作原理,那么<<stl源码剖[来源:GameRes.com]析>>会解决你所有的困惑

level 5
对于c++无非是oo和gp,想进一步提升oo,<<exeptional c++ style>>是一本主席这么多年的经验之谈,是很长esp的
一位stl高手是不能不去了解template的,<<c++ template>>是一本百科全书,足够你看完后对于gp游刃有余
<<modern c++ design>>是太过聪明的人写给明眼人看的

好书有很多,不能一一列举
以上我的读书经历,供各位参考。接下来的无非就是打怪练级,多听多写多看;boost、stl、loki这些都是利器,斩妖除魔,奉劝各位别再土法练钢了。

at last,无他,唯手熟尔。


Re:推荐的C++书籍以及阅读顺序

忘了一本《thinking in C++》
也是经典系列之一

<<effective c++>>这本圣经的作者Scott Meyesr在给<<modern c++ design>>序言的时候高度的赞赏了Andrei同志的工作:C++社群对template的理解即将经历一次巨大的变化,我对它所说的任何事情,也许很快就会被认为是陈旧的、肤浅的、甚至是完全错的。
就我所知,template的世界还在变化,速度之快就像我1995年回避写它的时候一样。从发展的速度来看,我可能永远不会写有关template的技术书籍。幸运的是一些人比我勇敢,Andrei就是这样一位先锋。我想你会从此书得到很多收获。我自己就得到了很多——Scott Meyers September2000。

并且,Scott Meyers 在最近的Top5系列文章中,评价C++历史里面最重要5本书中、把Modern C++ Design列入其中,另外四本是它自己的effective c++、以及C++ Programming Language、甚至包括《设计模式》和《C++标准文档》。 显然,Scott Meyers已经作为一个顶尖大师的角度承认了<<modern c++ design>>的价值。并且调侃地说,可以把是否使用其中模板方法定义为,现代C++使用者和非现代C++使用者,并且检讨了自己在早期版本Effective对模板的忽视,最后重申在新版本Effective第七章节加入大量对模板程序设计的段落,作为对这次失误的补偿。并且,在这里要明确的是<<modern c++ design>>并不是一本泛型编成的书,也不是一本模板手册。其中提出了基于策略的设计方法,有计划和目的的使用了模板、面向对象和设计模式。虽然Andrei本人对模板的研究世界无人能敌,但对其他领域的作为也令人赞叹。任何做游戏的人都不能忽视OpenAL把,你在开发者的名单里能看到Loki的名字:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值