一些C++的好书

下面是一些C++的好书,我按照类型列了出来,并附有介绍。方括号[]内是我自己读后的评论,有的书可以在图书馆借到,我也会标明。 

# 参考手册类型 

The C++ Programming Language (Bjarne Stroustrup) 
C++之父的经典著作,包含了几乎一切,从核心语言,到标准库,甚至还有编程的哲学(所以最新版已经有一千多页)。  

C++ Standard Library Tutorial and Reference (Nicolai Josuttis) 
介绍C++标准库的书。 
[好书注意,如果你刚刚学会了C++的基础知识,那么这一本书无疑是最适合你了。正如其题目所言,这本书既是一本入门书,也是一本参考手册。从一开始,这本书就循循善诱,向你介绍标准库的设计逻辑、使用方法,以及为什么要这么设计,逻辑性很强。这本书读下来,无论C++基础,还是程序设计的能力,都会加强许多许多。 
五楼外文阅览室有借,编号TP312C++/J84] 

The C++ IO Streams and Locales (Angelika Langer and Klaus Kreft)  
如果你想了解Streams和Locales的方方面面,这本书无疑最合适了。 
[iostream和locale是标准库里最糟糕的部分,这本书,就算了吧……] 

# 适合初学者的书 

## 介绍性 
如果你从来没编程过,或者接触过其他语言想学习C++,这里的书都是非常推荐的。 

C++ Primer (Stanley Lippman, Josée Lajoie, and Barbara E. Moo) 
无须多言,非常好地介绍了C++,而且包含一切细节。 
[我自己是读这本书入门的,几乎是最好的C++入门书+参考书。 
另外有一本很像的书,叫C++ Primer Plus,相比起来很差劲,大家千万别搞错了。 
图书馆里这本书很多,但无论中文英文都很热门,很难借,建议大家阅读电子版] 

Accelerated C++ (Andrew Koenig and Barbara Moo) 
和C++ Primer包含的范围大致一致,但是只有C++ Primer的四分之一厚。主要是因为它没有试图去成为编程的入门书,而是主要面向学习过其他语言的程序员。因此它的学期曲线非常陡峭,但是适合那些敢于挑战的人。 
[图书馆五楼有,编号TP312C++/K78。也有中文版,编号TP312C/1142] 

Thinking in C++ (Bruce Eckel) 
有两卷,第二卷主要讲述标准库,也很棒。 
[图书馆有中文版] 

Programming: Principles and Practice Using C++ (Bjarne Stroustrup) 
C++之父的另一本书,以C++为主要语言教授编程。对于新手,这本书或许是更好的选择,里面以现代C++为起点,更加清晰,也会减少之后的弯路。 

## 实用性 

Effective C++ (Scott Meyers) 
主要讲述了50条C++的编程原则,内容丰富,可读性很强,涉及了很多重要的语言细节。 
[初学者必读的书。 
貌似在五楼见过它的身影,不知道为什么搜不到。书本身比较老,图书馆里不好借到,看电子书吧。] 

Effective STL (Scott Meyers) 
风格同上,但是主要是关于标准库。 
[个人觉得没必要看这本书,关于标准库C++ Standard Library Tutorial and Reference是个好得多的选择。] 

# 适合中级程序员的书 

More Effective C++ (Scott Meyers) 
关于C++更多的技巧,没有前一本书那么重要,但仍然很棒。 
[图书馆有中文版,被借的光光的。] 

Exceptional C++ (Herb Sutter)  
More Exceptional C++ (Herb Sutter)  
Exceptional C++ Style (Herb Sutter) 
看名字就知道,又是一套系列书,和Effective C++讲述的东西差不多,不过是以C++题目的形式呈现的。 
[Herb Sutter是个很牛的程序员,他的博客也非常值得一读,这套书我觉得和Effective C++基本旗鼓相当,而且更多地倾向于工程上的问题,细节牵扯更多。阅读顺序建议是先读Effective C++系列,再读Exceptional C++系列。 
这套书同样在五楼也有,找到计算机的那一个书架,红红的一排,很显眼。] 

C++ Coding Standards (Herb Sutter and Andrei Alexandrescu) 
包含了101条编程习惯、问题、原则等等,能帮你写好正确、易懂、高效的C++代码。 

C++ Templates: The Complete Guide (David Vandevoorde and Nicolai M. Josuttis) 
讲述C++模板的书,从最简单的基础,到高级的模板元编程,还有模板编程的原理,都有涉及到。可读性也不错。  
[如果你想成为真正优秀的C++程序员,C++模板无疑是必须知识点之一,而这本书则是这方面最好的教程。 
图书馆有中文版,很容易借到,嘿嘿。] 

# 比中级程序员略高一点 

Modern C++ Design (Andrei Alexandrescu) 
介绍泛型编程的好书,几乎可以破坏掉你对C++的一切古老见解。 
[同样是必读书,但是需要比较好的基础,新手不要急着读。 
图书馆有中文版,但是居然极难借到,而且被翻的很破。] 

C++ Template Metaprogramming (David Abrahams and Aleksey Gurtovoy) 
关于C++模板元编程。 
[很薄的一本书,完完全全在讲述C++模板元编程,书里面过多地偏向于实际解决问题,对于原理描述的不太好。个人觉得不是所有人都需要去阅读,但如果你对C++非常非常专研,不妨试着读一读,很有趣。 
图书馆有中文版,很新,没多少人借过:)] 

Imperfect C++ Practical Solutions for Real-Life Programming (Matthew Wilson) 
讨论了各种C++实际工程中出现的问题,很厚,全是干货。 
[很意外的一本书,在图书馆五楼意外遇到,搜了一下,也有中文版。正如题目所言,Imperct C++,这里主要讲述了C++的缺陷,这也并非一本批驳的书,而是告诉你,C++为什么会有这些缺陷,如何去解决他们。书里涉及的问题涵盖了方方面面。推荐,虽然这本书本身名气不大。] 

Extended STL Volume 1 Collections and Iterators (Matthew Wilson) 
把对C++标准库的讨论推向了极限,描述了方方面面。注意这本书和上一本书是同一个作者。 

# 老书 
下面这些书已经有些年头了,很多书里的内容可能已经不合时宜了。 

The Design and Evolution of C++ (Bjarne Stroustrup) 
如果你想知道C++的发展历程,你会在这本书里找到答案。里面包含了C++标准化以前的所有内容。 
[简述了C++的历史,大家不妨一读,图书馆有中文版。] 

Ruminations on C++ - (Andrew Koenig and Barbara Moo) 
C++优秀文章的集子,本身有些老了,不再实用。这本书找了好久都找不到。 

Advanced C++ Programming Styles and Idioms (James Coplien) 
曾经是C++编程原则方面很好的书,现在有些跟不上潮流了。 

Large Scale C++ Software Design (John Lakos) 
这本书写在C++98标准之前,已经很老很老了。不过话说回来,如今很多国人的C++工程的书,连这本古老的书都不如。 

Inside the C++ Object Model (Stanley Lippman) 
关于虚函数、多重继承等等特性实现的书。如果你把上面推荐的很多书看完,这本书可能就不再需要了。 

posted @ 2011-10-14 15:32  糖拌咸鱼  阅读(3130)  评论(0编辑  收藏  举报