C++书籍推荐

本文概述了C++十大学习书籍及其特点,涵盖了从入门到进阶的学习路径,包括经典教程、标准库介绍、面向对象编程、最佳实践、模板编程等关键领域。同时提供了书籍评价和适用阶段的指导,旨在帮助初学者和进阶开发者选择合适的资源,提高编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(发表于2004年)贴子增多太快,现以个人之见对 C++十大学习书籍做简要描述,希望能对初学者起到一定的帮助。

    这十本书我都或翻或看过,有不同程度的了解,如果您对某本书的评论感到不满意,肯请在下面留言,谢谢指教!

    另外,强调一下发此贴的本意,今后论坛中不得出现问书的贴子,尤其是询问初学C++该看哪本书之类的,如有发现立即无条件移至非技术区,对书有不明之处,如有关书籍的价格、书目、简介、网友评论等信息,若还无法得到解决,再在此贴下面回复询问,不要在版内发贴!

    1.《C++ Primer中文版》(第4版)

    【原书名】 C++ Primer (4th Edition)

    【原出版社】 Addison Wesley/Pearson

    【作者】 (美)Stanley B.Lippman,Josée LaJoie,Barbara E.Moo

    【译者】 李师贤

    【丛书名】 图灵计算机科学丛书

    【出版社】人民邮电出版社

    本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++.本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++先驱Barbara E. Moo在C++教学方面的真知灼见。既显著改善了可读性,又充分体现了C++语言的最新进展和当前的业界最佳实践。书中不但新增大量教学辅助内容,用于强调重要的知识点,提醒常见的错误,推荐优秀的编程实践,给出使用提示,还包含大量来自实战的示例和习题。对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使本书成为C++初学者的最佳指南;对于中高级程序员,本书也是不可或缺的参考书。本书的前言阐述了 第4版和前一版的不同之处。

    难度:★★☆

    质量:★★★★★

    广度:★★★★★

    深度:★★★★

    性价:★★★☆

    2.《C++ Primer Plus》(第四版)中文版

    【原书名】 C++ Primer Plus,Fourth Edition

    【原出版社】 Sams

    【作者】 (美)Stephen Prata

    【译者】 孙建春 韦强

    【丛书名】 Primer Plus 系列

    【出版社】 人民邮电出版社

    本书针对的是C++初学者,书中从C语言基础知识开始介绍,然后在此基础上详细阐述C++新增的特性,因此不要求读者有C语言方面的背景知识。本书可作为大中院校教授C++课程的教材,也可供初学者自学C++时使用。覆盖面较全,章节安排比较合理,由浅入深,也很容易,故因此失去了一些深度。价格比较便宜,但翻译质量略有不足。现在,第五版也出版了,不过还没有读,看章节都差不多。

    难度:☆

    质量:★★★☆

    广度:★★★★

    深度:★★★

    性价:★★★☆

    3.《Essential C++》(影印版)

    【原书名】 Essential C++

    【原出版社】Pearson Education

    【作者】 (美)Stanley B.Lippman

    【丛书名】 深入C++系列

    【出版社】 中国电力出版社

    lippman的一部面向初学者的作品。在他写了那么后一本primer之后,为何还要写这么薄这么浅的书呢?其实primer对于初学者来说太笨重了,而这本书却是从不同的方面——C++的本质和组织结构对语言进行阐释,可以帮助初学者对这门语言有一个大致的了解,但知识范围不很全面,不适合系统学习,读者需要一定的编程知识。

    难度:★☆

    质量:★★★★

    广度:★★★☆

    深度:★★★

    性价:★★☆

    4.《Effective C++》

    【原书名】 Effective C++, Third Edition

    【原出版社】 Addison Wesley/Pearson

    【作者】 (美)Scott Meyers

    【出版社】 电子工业出版社

    《More Effective C++》

    【原书名】 More Effective C++: 35 New Ways to Improve Your Programs and Designs

    【原出版社】 Addison Wesley/Pearson

    【作者】 (美)Scott Meyers

    【丛书名】 C++设计新思维系列丛书

    【出版社】 机械工业出版社

    C++真牛人大手笔,之以条款的形式回答了程序员在使用C++时经常提出的“因该注意些什么?”,“因该避免什么?”,“因该怎样去解决?”,“为什么?”等问题。C++程序员想要让自己的水平上更高的档次,此二书必看。价格稍贵,有一定难度,不适合初学者。

    难度:★★★☆

    质量:★★★★★

    广度:★★★

    深度:★★★★★

    性价:★★

    5.《C++编程思想》

    【原书名】 Thinking in C++

    【原出版社】 McGraw Hill

    【作者】 Bruce Eckel

    【译者】 刘宗田 等

    「丛书名」 计算机科学丛书

    【出版社】 机械工业出版社

     除了讲述语言之外,有一定的工程性,从设计者的角度来描述C++怎样应用在实际的项目中。语言描述的全面性欠佳,但还是有一定精度的,尤其是在一些小技巧方面。本书还引入了大量的战例,通过一个个的真实项目来引导你使用C++的思想去思考问题。翻译很差,有一定难度。

    难度:★★☆

    质量:★★★

    广度:★★★☆

    深度:★★★★

    性价:★★★

    6.《C++大学教程》(第二版)

    【原书名】 The Complete C++ Training Course,Second Edition

    【作者】 (美)Harvey M.Deitel Paul James Deitel

    【译者】 邱仲潘 等

    【丛书名】 国外计算机科学教材系列

    【出版社】 电子工业出版社

    正如其名,真正的大学教程,非常适合初学者学习,内容由浅入深,对C++各项特性的描述都很到位,章节的安排很有条理性,但深度略显不足,翻译质量不能称之为很好,有一定的疏漏,但对于厚度来讲,价格还算比较便宜。

    难度:★

    质量:★★★☆

    广度:★★★★★

    深度:★★★★

    性价:★★★★☆

    7.《C++语言的设计和演化》

    【原书名】 The Design and Evolution of C++

    【原出版社】 Addison-Wesley

    【作者】 (美)Bjarne Stroustrup

    【译者】 裘宗燕

    【丛书名】 计算机科学丛书

    【出版社】 机械工业出版社

    对于热爱C++的朋友来说,确实好书一本,可以当做小说来读,可以放在厕所或床头上以供消遣。本书对语言本身描述很少,并有一定难度。读者需要对C++有一定了解,不适合初学者阅读。本书也有英文版,如果不喜欢翻译的朋友可以看看。

    难度:★★★

    质量:★★★

    广度:★★☆

    深度:★★★★

    性价:★★★

    8.《C++程序设计语言》

    【原书名】 The C++ Programming Language, Special Edition

    【原出版社】 Addison Wesley

    【作者】 (美)Bjarne Stroustrup

    【译者】 裘宗燕

    【丛书名】 计算机科学丛书

    【出版社】 机械工业出版社

    C++之父所作,被称之为“C++圣经”。不仅对语言,而且对语言周边的一些如发展史、语义哲学都有比较详细的描述。对语言的描述较为全面,同时包含一部分和程序库相关联的知识,并有一定深度,适合有一定语言基础的初学者,翻译质量不错,价格适中。

    难度:★☆

    质量:★★★★☆

    广度:★★★★☆

    深度:★★★★

    性价:★★★☆

    9.《深度探索C++对象模型》(影印版)

    【原书名】 Inside the C++ Object Model

    【原出版社】 Pearson Education

    【作者】 (美)Stanley B.Lippman

    【丛书名】 深入C++系列

    【出版社】 中国电力出版社

    第一代C++编译器开发主管所写。如果你想成为真正的C++高手,看这本书,他为你讲述了编译器在处理各种语法时在“后台”所做的事。对C++有较深入了解的读者会在读后有恍然大悟之感。候杰翻译,质量相当不错,但内容太深,只适合对C++有较深了解的读者,价格偏贵。

    难度:★★★★☆

    质量:★★★★★

    广度:★★★

    深度:★★★★★

    性价:★★

    10.《C++程序设计教程》(钱能-清华版)

    【作者】 钱能 董灵平 张敏霞

    【丛书名】 C++程序设计系列教材

    【出版社】 清华大学出版社

    国人所著,国人水平实在有限,深度和广度欠佳,放在这十大里实在是因为再挑不出好书了。可圈可点之处有讲解较为清析、简单,符合中国学生思路,价格便宜。

    难度:☆

    质量:★★★

    广度:★★★☆

    深度:★★★

    性价:★★★★★

    鉴于目前问书的贴子增多太快,现以个人之见对C++十大学习书籍做简要描述,希望能对初学者起到一定的帮助。

    这十本书我都或翻或看过,有不同程度的了解,如果您对某本书的评论感到不满意,肯请在下面留言,谢谢指教!


[译]C++书籍终极推荐

JerryZhang 03/04/2012

声明:

英文水平有限,加上在 stackoverflow 混的人,母语都带一定的地方色彩,向我们的 chinenglish。如果你觉得有误,欢迎留言指正。

All levels

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++ 标准库的介绍和参考手册

个人觉得这本书是每个 C++ 程序员的必备书籍,书如其名,就是一本手册。整本书都在讲述 C++ 库函数。如果你想学习 C++ STL 的话,选择这本书先熟悉一下 STL 是一个很不错的选择。我看过 3 遍,每一遍都会有新的收获。

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.(个人没有能力翻译这段话,抱歉.)

Beginer

Introductory

如果你刚开始学习程序设计或者你有其他语言的使用经历,下面这些书籍高度推荐:

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++]

评:非常好,不只是适合初学者的一本书。

没读过,但是很想读。

Best practices

1.Effective C++

评:每个C++程序员都应该读的书。早期版本针对从 C 转到 C++ 的程序员。第三版做了修改,程序定位在向 java 这样的语言转变过来的 C++ 程序员。改善程序与设计的55个具体做法。提升 C++ 功力必备书籍,真的很棒。

2.Effective STL

有这本书,但是没有读完,不做评价。

Intermediate

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 的同学,一定要先去学模板,否则就相当于在被库函数。

Above Intermediate

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]

Classics/Older

标注:这些书中包括的一些信息可能不再适合现在或者不再是最好的实践方案。

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 找一些不错帖子来翻译吧。

转自:http://itlab.idcquan.com/c/cc/basic/200905/783905.html

            http://www.perfect-is-shit.com/cpp-book-recomman.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值