C++ book page of Benno List


A Few Good Books on C++

Click on the picture to get to the publisher's page of this book.
 

C++ Language and Programming Techniques

Bjarne Stroustrup
The C++ programming Language.
3rd Edition 
Addison-Wesley 1997, 928 pages. 

The Bible. It's the authorative presentation of the C++ language in its current form, according to the ANSI standard, including the standard library. I still have to be convinced that it should not be possible to learn C++ from this book. I did.

An absolute must.

There's also the Bjarne's homepage. Look also at his FAQ site and at his own site for "The C++ Programming Language" 

Read also the review in Dr. Dobbs's Journal.

Margaret A. Ellis and Bjarne Stroustup
The Annotated C++ Reference Manual.
Addison-Wesley 1990, 470 pages. 

It's a bit out of date, but used to define the standard C++ for a long time, and apparently contains a lot of useful in-depth coverage of the language. 

ftp site

Bjarne Stroustrup's site for this book.

Seems to be out of print.

Bjarne Stroustrup
The Design and Evolution of C++.
Addison-Wesley 1994, 480 pages. 

This book gives a lot of insight about why C++ has been designed the way it is (which might be quite revealing to those who think that one should really use Smalltalk or - much more en vogue - Java), and at that time teaches you a lot about C++ in general and some of its subtleties in particular. 

Recommended for those who want to go a bit deeper into C++. 

There's also a site from Bjarne Stroustrup for this book. 

Read the ACCU review of this book, and the Dr. Dobb's Journal review.

Stanley Lippman and Josée Lajoie: 
The C++ Primer.
3rd Edition 
Addison-Wesley 1998, 1296 pages. 

Make sure you get the new, third edition!.

I got me thesecond edition, which is indeed a nice introduction to C++. A good buy if you find Stroustrup's book a bit too terse.

John J. Barton and Lee R. Nackman: 
Scientific and Engineering C++.
An Introduction with Advanced Techniques and Examples 
Addison-Wesley 1994, 688 pages. 

A very fine introduction to C++, with a special chapter for FORTRAN programmers. Contains some very good advice how to program in C++. 

The second part of the book demonstrates the use of templates for code reuse, and is praised by Scott Meyers to be one of the most advanced examples of template use. Though of 1994, it covers templates and exceptions, but some of the container classes presented are out-of-date, as there is now the STL. 

Highly recommended. 

Scott Meyers
Effective C++.
50 Specific Ways to Improve your Programs and Designs. 
2nd Edition. 
Addison-Wesley 1998, 288 pages. 

Now here's a MUST for every serious C++ programmer. Written in a highly readable and amusing style, this book gives valuable advice how to use the myriards of C++ constructs in a meaningful way, and how to avoid a number of pitfalls. The book is devided into 50 'items', each of which can be summarized in a single sentenc, like: "Item 24: Choose carefully between function overloading and parameter defaulting."

(Very) good reasons are given for every one of these rules. Covers the latest (ANSI) definition of C++. 

Highly recommended. 

There's also a  CD that accompanies this book.

Scott Meyers
More Effective C++. 
35 New Ways to Improve Your Programs and Designs 
Addison-Wesley 1996, 318 pages. 

The sequel to "Effective C++" (though not as up-to-date, since it's still the first edition), but (unlike so many other sequels) as good as the first book. Probably a bit more advanced.

Highly recommended.

John Lakos: 
Large-Scale C++ Software Design.
Addison-Wesley 1996, 845 pages. 

An excellent book, although much too long. The author covers issues that arise when one builds very large (hundreds of thousands or millions of lines of code) systems. For such systems, compile time and link time can be a serious issue. Much more important, however, is the issue of testing, which is thoroughly covered. Highly recommended.

Tom Cargill: 
C++ Programming Style
Addison-Wesley 1992, 248 pages.

STL: The Standard Template Library

Nicolai M. Josuttis:
The C++ Standard Library: A Tutorial and Reference
Addison-Wesley 1999, 832 pages. 

My favorite overview over the STL and the C++ standard library in general.

David R. Musser, Atul Saini: 
STL Tutorial and Reference Guide. 
C++ Programming with the Standard Template Library, second edition 
Addison-Wesley 2001, 560 pages. 

A good overview over the STL, but I like the books by Austern and Josuttis better.

Matthew H. Austern
Generic Programming and the STL: Using and Extending the C++ Standard Template Library
Addison-Wesley 1999, 576 pages 

A very good introduction to the concepts and implementation methods of the STL.

Scott Meyers
Effective STL. 
50 Specific Ways to Improve Your Use of the Standard Template Library
Addison-Wesley 2001, 288 pages. 

Another one of the "more effective" books by Steve Myers.

Again highly recommended.

Patterns

James O. Coplien
Advanced C++ Programming Styles and Idioms.
Addison Wesley 1992, 520 pages. 

Scott Meyers refers to it as "the LSD book", because it's purple and it will expand your mind.

Read the Dr. Dobb's Journal review and the ACCU review.

Coplien's "idioms" were actually precursors of the famous "patterns".

Erich Gamma, Richard Helm, Ralph Johnson and John M. Vlissides: 
Design Patterns: Elements of Reusable Object-Oriented Software
Addison-Wesley 1995, 416 pages. 

The famous book of the "Gang of Four". I don't think you can claim to know something about OO if you do not know this book. You need it. Believe me.

There's also a CD to accompany this book.

Martin Fowler: 
Analysis Patterns: Reusable Object Models
Addison-Wesley 1997, 384 pages.
William J. Brown, Raphael C. Malveau, Hays W. McCormick and Thomas J. Mowbray: 
AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
Wiley 1998, 336 pages.
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal
Pattern-Oriented Software Architecture, Volume 1: A System of Patterns
Wiley 1996, 476 pages.

A very interesting book (though a bit expensive).

Refactoring, Extreme Programming

Martin Fowler, Kent Beck, John Brant, William Opdyke and Don Roberts: 
Refactoring: Improving the Design of Existing Code
Addison-Wesley 1999, 464 pages 

A very influential book, meanwhile a classic. Fowler's idea that you can actually more or less "adiabatically" transform a bad design into a good one is the foundation of the fashionable (and controversial) "extreme programming" movement started by Kent Beck.

Kent Beck: 
Extreme Programming Explained: Embrace Change
Addison-Wesley 1999, 224 pages 

The first of a whole series of books published by Addison Wesley on "Extreme Programming".

Object Oriented Analysis and Design Methodology

Grady Booch:
Object oriented analysis and design with applications.
Addison-Wesley 1994, 589 pages. 

Have you ever wondered what you should really do diferent from FORTRAN programming in order to be a truly faithful object oriented programmer? Then this is the book for you. It introduces you to the famous Booch method, and gives a very good insight into the "how" of OO analysis, design, and programming. 

Highly recommended. 

Read the Dr. Dobb's Journal review and the ACCU review.

David Bellin, Susan Suchman Simone:
The CRC card book.
Addison-Wesley 1997, 320 pages.

One of the few books that explain what CRC (Classes, Responsibilities, Collaborations) Cards are and how they are used. Recommended.

UML: The Unified Modeling Language

Martin Fowler, Kendall Scott: 
UML Distilled:
A Brief Guide to the Standard Object Modeling Language, Second Edition

Applying the Standard Object Modeling Language.
Addison-Wesley 1999, 224 pages.

A good, concise overview over UML.

Terry Quatrani:
Visual Modeling with Rational Rose 2002 and UML, Third edition
Addison-Wesley 2002, 288 pages.

This book seems to reappear with every new Rose version.

Grady Booch, James Rumbaugh, Ivar Jacobson: 
The Unified Modeling Language User Guide.
Addison-Wesley 1999, 512 pages. 

There's not only the Gang of Four, but also the Three Amigos. Now these three guys have published the long awaited three standard books on UML: The user's guide, the reference manual and a description of the unified software development process. These three books are probably instant classics.

James Rumbaugh, Ivar Jacobson, Grady Booch: 
The Unified Modeling Language Reference Manual.
Addison-Wesley 1999, 576 pages.

Something to put in your bookshelf to impress other people.

Ivar Jacobson, Grady Booch, James Rumbaugh: 
The Unified Software Development Process.
Addison-Wesley 1999, 352 pages.

Object Oriented Databases

David Jordan: 
C++ Object databases. 
Programming with the ODMG Standard 
Addison-Wesley 1998, 480 pages. 

A good introduction how to use object oriented databases from C++. Quite readable for someone (like me) who has not any experience with relational databases, SQL, and the like.

No GIFs on this webpage!


Last update: 21.2.2003 Benno List.