The Best C++ Books

This guide attempts to collect the few pearls among the dozens of bad C++ books that are published every year. Unlike many other programming languages, which are often picked up on the go from tutorials found on the Internet, few folks are able to quickly pick up C++ without studying a well-written C++ book. It is way too big and complex for doing this. In fact, it is so big and complex, that there are very many very bad C++ books out there. And we are not talking about bad style, but things like sporting glaringly obvious factual errors and promoting abysmally bad programming styles. Here's a list of books that fortunately have none of these flaws, and will actually help you learn or master C++ the proper way.


Beginner

Introductory, no previous programming experience

  • By: Bjarne Stroustrup (for C++11/C++14)

    An introduction to programming using C++ by the creator of the language. A good read that assumes no previous programming experience, but it is only for beginners.

Introductory, with previous programming experience

  • By: Stanley Lippman, José Lajoie, and Barbara E. Moo

    Coming at nearly 1000 pages, this is a very thorough introduction into C++ that covers just about everything in the language in a very accessible format and in great detail. The fifth edition (released August 16, 2012) covers C++11.

  • By: Bjarne Stroustrup  (e-book)

    The "Tour" is a quick (about 180 pages and 14 chapters) tutorial and overview of all of standard C++ (language and standard library, and using C++11) at a moderately high level for people who already know C++ or at least are experienced programmers. This book is an extended version of the material that constitutes Chapters 2-5 of The C++ Programming Language, 4th edition.

  • By: 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 to use a modern approach at teaching the language.)

Best practices


Intermediate


Advanced


Reference Style - All Levels

C++11/14 References

  • The C++14 Standard (ISO/IEC 14882:2014)

    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. It is primarily listed here for completeness, not because it is a recommended reading or anything. It is available as a PDF or a PDF on CD for approximately $200 USD (as of July, 2017). For most people, the final draft before standardization is more than adequate (and free). Many will prefer an even newer draft, documenting new features that are likely to be included in C++17.

  • C++ Super-FAQ (Marshall Cline, Bjarne Stroustrup and others)

    The C++ Super-FAQ is an effort by the Standard C++ Foundation to unify the C++ FAQs previously maintained individually by Marshall Cline and Bjarne Stroustrup and also incorporating new contributions. The items mostly address issues at an intermediate level and are often written with a humorous tone. Not all items might be fully up to date with the latest edition of the C++ standard yet.

  • cppreference.com (initiated by Nate Kohl)

    The C++ Reference is a wiki that summarizes the basic core-language features and has extensive documentation of the C++ standard library. The documentation is very precise but is easier to read than the official standard document and provides better navigation due to its wiki nature. The project documents all versions of the C++ standard and the site allows filtering the display for a specific version.


Classic / Older

Note: Some information contained within these books may not be up-to-date or no longer considered best practice.