Morgan Stanley | Columbia University | Churchill College, Cambridge

home | C++ | FAQ | technical FAQ | publications | WG21 papers | TC++PL | Tour++ | Programming | D&E | bio | interviews | videos | applications | guidelines | compilers

Books by Bjarne Stroustrup

Modified July 11, 2018

I have written several books:

For translations, see my publication list and my cover gallery.

A Tour of C++ (Second edition) is a quick (about 240 pages) tutorial overview of all of standard C++ (language and standard library) at a moderately high level for people who already know C++ or at least are experienced programmers. It covers C++17 and a bit of C++20.
The C++ Programming Language (Fourth Edition) aka TC++PL4 is a completely rewritten and re-organized version of TC++PL3. It describes the C++11 revision of ISO C++. In particular, TC++PL4 reflects the massive increased of the standard library and the support for concurrency.

TC++PL4 aims at completeness in is description of the C++ language features, standard library components, and the programming and design techniques they support. See The Preface.

The exercises have been extended, but are placed on the web to save trees and allow for explansion.

The discussion for software engineering issues found in TC++PL3 has been cut for lack of space. I still recommend the discussion in TC++PL3.

Programming -- Principles and Practice Using C++. is an introduction to programming for people who has never programmed before. It will also be useful for people who have programmed a bit and want to improve their style and technique. It is designed for classroom use, but written with an eye on self study. Drafts have been used as the basis for first programming classes at Texas A&M University (and elsewhere) for sevel years now. It is unrelated to the editions of The C++ Programming language.
The ``special edition'' of TC++PL is the hardbound version of the 3rd edition of TC++PL. It contains two appendices more than the initial printings of the 3rd edition and many minor improvements. The ``extra'' appendices can be found on my support pages for the 3rd edition
My 3rd edition is a complete C++ language and standard library tutorial for experienced programmers. It completely describes the C++ standard (ISO/IEC 14882) from the perspective of a programmer.

The third edition is a complete rewrite of the second edition. More than 80% of the text is new compared to my 2nd edition.

D&E discusses why C++ is the way it is. It describes the design of C++. The emphasis is on the overall design goals, practical constraints, and people that shaped C++. It is not a book trying to document every little detail of the language or its use. The point of view in the discussion of C++ tends to be that of a user (programmer or designer) rather that of a language lawyer.

D&E should give you a much better appreciation of the way the features of C++ fit together. It is my hope (and experience) that understanding of such matters helps people write better programs, but the book's primary aim is not on specific programming techniques.

My 2nd edition is a complete C++ tutorial for experienced programmers, plus the C++ reference manual, plus three chapters on design issues, plus a chapter on ANSI/ISO resolutions.

The ANSI/ISO chapter is an attempt to address the problem of how to keep a book completely up-to-date without messing about with its content to the point where it becomes useless as a common point of reference. The approach is feasible because the changes fit into the overall pattern of the language.

By now, the 2nd edition is out-of-date and is unsuitable for learning C++ from. Since it was published, the ISO C++ standard has been adopted and many new design and programming techniques have become common (see my 3rd edition).

The ARM is the C++ reference manual annotated with information supposedly of interest to language lawyers and implementers, plus a chapter on ANSI/ISO resolutions.

Thanks to the good work of the ANSI/ISO committee, the ARM is now outdated.

The 1st edition of The C++ Programming Language introduced C++ to the world and its publication coincided with the first commercial release of C++. By now, it is of historical interest only. Nobody in his right mind would try to learn C++ from it.

Morgan Stanley | Columbia University | Churchill College, Cambridge

home | C++ | FAQ | technical FAQ | publications | WG21 papers | TC++PL | Tour++ | Programming | D&E | bio | interviews | videos | applications | guidelines | compilers