C++ Books

The number of books published on C++ and related topics far exceeds the number that any rational person could hope to read. The following list of books are those that I have read. Many other excellent books exist, but I have not yet found the time to read them all. For a more comprehensive list of C++ books, visit ACCU (Association of C and C++ Users). For your convenience, I divided the books into four sections: for novice programmers, for experienced programmers who want to learn C++, for experienced C++ programmers, and books for all programmers.

For Experienced C++ Programmers

C++ in a Nutshell, by Ray Lischner.

I wrote C++ in a Nutshell because I could not find a good reference for the language and library.

C++ Network Programming, volume 2, by Douglas C. Schmidt and Stephen D. Huston.

One of two volumes on ACE (the ADAPTIVE Communication Environment).

The C++ Programming Language, special edition, by Bjarne Stroustrup.

A classic, by the inventor of C++.

The C++ Standard Library, by Nicolai M. Josuttis.

A thorough and in-depth reference for the standard library (all the C++-specific portions of the library).

The C++ Standard Template Library, by P. J. Plauger, et al.

A good reference for the STL portion of the library, aimed at those who wish to understand the library from the implementor's perspective.

C++ Templates, by David Vandervoorde and Nicolai M. Josuttis.

Excellent, in-depth, and thorough coverage of this difficult topic.

Effective C++, by Scott Meyers.

Now largely out of date, this original book still continues much that is useful.

More Effective C++, by Scott Meyers.

Tips on using C++ correctly and efficiently.

Effective STL, by Scott Meyers.

Tips on using the STL correctly and efficiently.

Exceptional C++, by Herb Sutter.

A series of challenges to the most experienced programmer, providing greater understanding of the subtleties of the language.

More Exceptional C++, by Herb Sutter.

More challenges to the most experienced programmer, providing greater understanding of the subtleties of the language.

Modern C++ Design, by Andrei Alexandrescu.

An immersion into the wild world of template metaprogramming.

STL Tutorial and Reference, 2nd edition, by David R. Musser, et al.

A more gentle introduction to the STL than some of the other books.

For Experienced Programmers

Accelerated C++, by Andrew Koenig and Barbara E. Moo.

An excellent book for experienced programmers who want to learn C++. It is more advanced than the typical "Teach Yourself" style books.

Essential C++, by Stanley B. Lippman.

A slightly different approach to presenting C++ to experienced programmers.

For Novice Programmers

C++ for Java Programmers, by Timoth Budd.

A small book that is aimed at students who have spent most of their undergraduate years using Java and must now learn C++. It covers the basics well, but does not go into the intricate depths of templates.

C++ Primer, By Stanley B. Lippman and Josée Lajoie.

A good introduction to C++ for novice programmers. My preference as a textbook for those learning C++.

Thinking in C++, 2nd edition, by Bruce Eckel

Another good introduction to C++. Many of my students preferred this book to C++ Primer.

For All Programmers

The Design and Evolution of C++, by Bjarne Stroustrup.

Insight into why C++ is the way it is.