This book is an introduction to C++ programming and does very little with 'design'. The book is full of errors, which will swiftly confuse and frustrate new readers. The errors are rarely in the code, fortunately. The authors' attempts to demonstrate the output of their programs, as text or graphics, are frequently incorrect and often misleading. In the process of revising the book, the authors have made reference to code pieces that are no longer a part of the book and have poorly integrated the concept of a
namespaceby throwing it into an appendix with exception handling (although the STL is included fairly well). They even suggest that any file with a
.hextension should be global in scope (p. 231)!
On the bright side object oriented programming is mentioned early and reinforced frequently, although classes are not addressed until very late in the book (Chapter 8 of 15). The authors also do an excellent job of presenting the assignment operator (
=) as a distinct function from the equality operator (
==). This distinction is often confusing for beginning programmers, but is well handled in this book.
The programming examples generally rely on the EZWindows library, which comes with the book and performs rudimentary graphics manipulation. EZWindows itself is absent the values of namespaces and the library is only explained late in the book (Chapter 11), long after it has been required for a variety of examples and exercises.
One other minor peeve was that in the first chapter the authors introduce a game (bug hunt) to be programmed, which they say will be addressed later - it turns out that later is the last chapter. Perhaps this would not be so bad except that the authors state in the preface that in their classes they do not actually teach the last chapter. Indeed, in their classes, they skip most of the latter half of the book (most of the chapter on arrays, all of the chapter on pointers and dynamic memory and the chapter on templates and polymorphism). Sadly, the authors don't spend enough time talking about what makes C++ great and too much time fooling around with graphics.
While this book has many good points, I would not recommend it for C++ design or programming.