Looking for the best C++ books to get you up to speed or hone your skills?
This list was first published in 2011, and has been updated yearly since.
C++ is a powerful general purpose programming language that is statically typed, free-form, multi-paradigm and compiled. It is one of the most popular programming languages in the world and is implemented across a wide variety of hardware and operating system platforms. As an efficient compiler to native code, its application domains include systems software, application software, device drivers, embedded software, high-performance server and client applications, and entertainment software such as video games.
It doesn’t matter whether you’re a beginner new to programming or an intermediate-advanced user looking to master the language, there’s a book here that has got you covered. They are all extremely popular around the web, well-written, well-received and easy to follow for their relevant skill bracket.
Best Beginner C++ Books:
C++ Primer is a highly recommended, well organised and well-written book for those who want to learn C++. It is a very thorough introduction to the language in a very accessible format, with plenty of examples and explains everything in the language in great detail. It will help you learn C++ fast, especially if you come from a programming background already, and will teach you how to use the language in modern, highly effective ways. Chosen and recommended by many of industry leaders, it highlights best practices, the core of the language and its standard library, while providing great examples and insightful analysis along the way. It comes at over one-thousand pages but is not messy or hard to navigate, so expect to find any beginners topic covered extensively. Read more..
Accelerated C++: Practical Programming by Example
Accelerated C++ covers very similar ground to the previous book, but is nowhere near as large because it does not introduce someone to programming. It is a book written for those who already have a solid background and experience in programming in another language. It has denser and more compact material aimed at more advanced newcomers to C++, but if you don’t need a ‘newbified’ introduction to the language than this one will get you up to speed faster. Not for the faint of heart who may feel a little overwhelmed stepping into C++ for the first time. Read more..
Effective C++: 55 Specific Ways to Improve Your Programs and Designs
Effective C++ is the book to read after you’ve chose one of the previous two beginners books. It is aimed at newcomers to the language who are ready to further their knowledge and hit the intermediate level of C++ programming. It presents 50 rules of thumb for the language along with the rationale behind them in a easy to read and enjoyable style, and is an absolute must for anyone thinking of doing C++ development seriously. It is well worth the investment making this the second book on your purchase list after your initial introductory book. Read more..
Best Intermediate C++ Books:
Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions
Exceptional C++ is aimed towards the experienced C++ programmer, and presents a set of puzzles and explanations for advanced programmers to work through and take their skills to the next level. It tests the reader’s knowledge of advanced C++ topics and language features so be sure to come prepared to get the most out of this book. Topics covered include proper resource management and exception safety through RAII, the pimpl idiom, name lookup, class design, and the C++ memory model. Read more..
C++ Templates: The Complete Guide
C++ Templates covers the advanced and powerful features of C++ templates and shows software engineers how to use them to build and maintain cleaner, faster, and smarter software. Templates are among the most often neglected and misunderstood features of C++ and so a primer on them is very useful, but be warned you need an intermediate to advanced level of experience and skill already in C++ for this book. It acts as a tutorial to templates as well as a handy reference, with an emphasis on the practical use of templates and using them in real-world examples. Every detail of templates is covered: how they are implemented, common pitfalls, the One Definition Rule (ODR), overload resolution and solid appendices. Read more..
More Effective C++: 35 New Ways to Improve Your Programs and Designs
More Effective C++ has even more (as the title suggests) rules of thumb than its predecessor mentioned earlier. While the rules may not be as important or effective as the first book they are still good to know and a valuable addition to your library. With 35 new ways to improve your C++ programs and designs, this book explains again how to write software that works better: more efficient, effective, robust, consistent, portable and reusable. It is another valuable book worth getting if you want to take yourself from a beginner to the intermediate-advanced level. It covers plenty of useful topics and is littered with code snippets and examples to illustrate the rules given. Read more..
Best Advanced C++ Books:
Modern C++ Design: Generic Programming and Design Patterns Applied
Modern C++ Design is a very respected and recommended book for advanced C++ programmers, introducing policy-based design, type lists, and fundamental programming idioms. It introduces and demonstrates ‘pattern templates’ as a method of creating extensible designs including small object allocators, factories, visitors, and multi-methods. This book will help advanced programmers hone advanced techniques to achieve expressive, flexible, clean and highly reusable C++ code. Unless you’re a hardcore C++ programmer expect to find this book hard to understand, however the payoff once you’ve mastered the techniques within is worth it. Read more..
The C++ Programming Language: Special Edition (3rd Edition)
Updated for C++11, The C++ Programming Language is the classic introduction to the language by its creator, and is the world’s most trusted and widely read book on C++. It is a perfect reference book, covering everything from the core language, the standard library to programming paradigms and the language’s philosophy. The code and examples within are clean, to the point and clearly shows exactly what it means to and how it works. Recommended for intermediate to advanced C++ software engineers. Read more..
The C++ Standard Library: A Tutorial and Reference
Also updated for C++11, The C++ Standard Library is the introduction and reference for the C++ standard library, providing comprehensive documentation of each library component and an introduction to their purpose and design. It is jam-packed with examples throughout the book and clearly written explanations of complex concepts. It covers practical uses of C++ and how it is effectively used, traps and pitfalls, signatures and definitions of the most important classes and functions. It’s also got a solid index at the end of the book which only solidifies it’s strength as a reference. Read more..