C/C++培训
美国上市C/C++培训机构

400-111-8989

热门课程

从C/C++语言初学者到高级工程师,学习C/C++语言必读书籍推荐

  • 时间:2017-05-25
  • 发布:C++培训
  • 来源:C++职场

The Definitive C++ Book Guide and List

该问题试图从每年出版的众多C++书籍中收集那些最好的一小部分。

不像很多其他简单的编程语言,从网上找些参考资料就能上手,很少有人能在不系统得阅读一本好的C++书籍的情况下就快速地上手。C++是一种很重型且复杂的语言。事实上,正因为如此,市面上有很多很差的C++书籍。这里所说的差不单是编程风格上的,而是那种显而易见的事实上的错误,并且会促使你形成糟糕的编程风格。

请提供一些优质的书籍以及相对应的技术水平。请为每本书添加一条简短的介绍。请随意地讨论书籍的质量,标题等等。满足条件的书籍将会被添加到书单中。

来自George Stocker的最佳回答

初学者

入门,适合没有任何编程经验者

  • C++程序设计:原理与实践(基础篇)(原书第2版)(Programming: Principles and Practice Using C++)

    作者:Bjarne Stroustrup (updated for C++11/C++14)

    由C++之父编写的入门书籍,非常适合没有任何编程经验的初学者,当然有编程经验的程序员也值得一读。

入门,适合具有一定编程经验的程序员

  • C++ Primer(中文版)(第5版)(C++ Primer)

    作者:Stanley Lippman, Josée Lajoie, and Barbara E. Moo

    近1千页,非常透彻地讲解了C++,以浅显易懂并且非常详细的方式涵盖了语言的方方面面。2012年8月16日发行的第5版涵盖了C++11。

  • C++之旅(英文版)(A Tour of C++)

    作者:Bjarne Stroustrup

    大约180页,14个章节,从一个较高的水平快速介绍了标准C++的全貌,适合已经熟悉C++或者具有一定编程经验的程序员。这本书是对C++程序设计语言(第4版)的2-5章的内容的扩展版本。

  • Accelerated C++中文版 (Accelerated C++)

    作者:Andrew Koenig and Barbara Moo

    这本书基本上涵盖了和C++ Primer相同的内容,但是只用了四分之一的版面。这主要是因为它是针对那些具有其他编程语言经验的程序员的C++入门书籍。这本书的学习曲线有点陡,但是对那些能够应付过来的程序员而言,它是简洁而紧凑的入门C++的首选。(这本书有一个历史突破,它是使用现代方法教授编程语言的第一本书。)

  • C++编程思想(两卷合订本)(Thinking in C++)

    作者:Bruce Eckel

    这是一本入门级别的参考书。不幸的是书中存在一些琐碎的错误,而又没有官方勘误列表。http://www.computersciencelab.com/Eckel.htm是一个第三方勘误列表,但是显然目前已经没有维护了。

最实用

  • Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)(Effective C++)

    作者:Scott Meyers

    这本书是每个C++程序员必读的第二本书。以前的版本面向的是那些从C语言转过来的程序员,第三版改为针对那些从像Java等语言转过来的程序员。它展示了50多条易于记忆的编程原则,并配有容易接受甚至是很有趣的原理解释。对于C++11和C++14,书中的例子稍微有些过时,这部分内容阅读Effective Modern C++是更好的选择。

  • Effective Modern C++:改善C++11和C++14的42个具体做法(影印版)(英文版)(Effective Modern C++)

    作者:Scott Meyers

    这本书基本上就是Effective C++的新版,面向的是那些从C++03转入C++11和C++14的程序员。

  • 中文版Effective STL:50条有效使用STL的经验(Effective STL)

    作者:Scott Meyers

    与Effective C++的讲解方式类似,不过这本书是专门介绍C++标准库STL的。它描述了相关的编程原则及其原理。


中级

  • More Effective C++:35个改善编程与设计的有效方法(中文版)(More Effective C++)

    作者:Scott Meyers

    在Effective C++的基础上,提出了更多的编程原则。虽然没有Effective C++那么重要,但是仍然值得一读。

  • Exceptional C++:47个C++工程难题、编程问题和解决方案(Exceptional C++)

    作者:Herb Sutter

    以提出一系列难题的方式讲解,本书对RAII过程中的资源管理和异常安全做了最好最翔实的讲解,另外还涵盖了包括指向实现的指针,名字查找规则,优秀类设计和C++内存模型在内的很多主题。ACCU相关评论

  • More Exceptional C++:40个新的工程难题、编程疑问及解决方法(More Exceptional C++)

    作者:Herb Sutter

    涵盖了Exceptional C++中所没有涵盖的更高级的异常安全主题。另外还讨论了有效的面向对象编程和正确的使用STL。

  • C++编程剖析:问题、方案和设计准则(Exceptional C++ Style)

    作者:Herb Sutter

    本书讨论了泛型编程,最优化和资源管理。另外,本书还有一个出彩的阐述,是关于如何使用非成员函数和单职责原则来写模块化C++代码。

  • C++编程规范:101条规则、准则与最佳实践(C++ Coding Standards)

    作者:Herb Sutter and Andrei Alexandrescu

    这里的“编程规范”并不是指“我的代码应该缩进几个空格”之类的,这本书描写了101条能够帮助你编写正确,易于理解,且高效的C++代码的最优实践,惯用法和常见陷阱。

  • C++ Templates中文版(C++ Templates: The Complete Guide)

    作者:David Vandevoorde and Nicolai M. Josuttis

    本书描写的是关于C++11之前的模版。它涵盖了从最基本的到最高级的模版元程序的方方面面,解释了模版工作原理的每一个细节(既涵盖了概念上的,也涵盖了实现细节),另外还讨论了许多常见陷阱。在附录中有对ODR原则(One Definition Rule)和重载精彩的总结。


高级

  • C++设计新思维(Modern C++ Design)

    作者:Andrei Alexandrescu

    一本关于高级泛型编程技术具有开创性的书。介绍了基于策略的设计,类型列表和基础泛型编程惯用法。解释了如何使用泛型编程高效,模块化,简洁地实现许多设计模式(包括小对象分配器,功能函数,工厂函数,访问者,多重方法)。

  • C++模板元编程(C++ Template Metaprogramming)

    作者:David Abrahams and Aleksey Gurtovoy

  • C++并发编程实战(C++ Concurrency In Action)

    作者:Anthony Williams

    本书讲解了C++11对并发的支持,包括线程库,原子库,C++内存模型,锁和互斥量,另外还涵盖了多线程应用的设计和debug问题。

  • Advanced C++ Metaprogramming

    作者:Davide Di Gennaro

    前C++11时代TMP技术的手册级书籍,相比于理论,其更加关注实践。书中有大量的代码片段,其中一些代码使用的技术是非常有用的。如果你能够容忍本书古怪的格式,它会比Alexandrescu的书更容易读一些,更可论证,更有收益。对经验丰富的程序员而言,这是一个可以接触到C++暗角技术的很好机会,通常这些技术只有具备广泛的编程经验才能获取。


手册类-适合各个水平的程序员

  • C++程序设计语言(第1-3部分)(原书第4版) (The C++ Programming Language)

    作者:Bjarne Stroustrup

    由C++语言之父编写的C++经典书籍。与经典的K&R属于同一级别,本书的风格跟K&R也很类似。本书涵盖了从语言核心到标准库,从编程范例到语言哲学的方方面面。

  • C++标准库(第2版)(C++ Standard Library Tutorial and Reference)

    作者:Nicolai Josuttis

    本书是C++标准库的导论和手册。第二版(于2012年4月9日出版)涵盖了C++11。

  • The C++ IO Streams and Locales

    作者:Angelika Langer and Klaus Kreft

    市面上很少有书讲本书的内容,如果你想学习关于streams和locales的所有内容,那么本书是你寻找答案的最好去处。

上一篇:学习C/C++语言常见问题解答
下一篇:学习C语言对未来职场有非常大的帮助

做C++开发是否面临职业生涯短暂的问题?

常见的十道C/C++程序员面试题

c语言面试题----指针篇

C/C++常见面试题整理

选择城市和中心
贵州省

广西省

海南省