ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
C++ Program Design 2ed
Author:
James Cohoon&Jack Davidson
ISBN:
0 07 116147 3
Publisher:
McGraw-Hill
Pages:
896pp+CD
Price:
£21-99
Reviewer:
Francis Glassborow
Subject:
beginner's c++
Appeared in:
12-1
I am unhappy with the title of this book. In fact the substance of the text is a perfectly respectable introduction to C++. It isn't the way I would introduce the subject because the authors lean heavily on simple arithmetical programs which are certainly easy to grasp but are hardly exciting to the ordinary novice and serve to consolidate the myth that programming is about arithmetic.

On the positive side, the authors do use the full power of standard C++ including use of the string class and the STL. The text comes with a graphical API from the author called EzWindows which is provided for MSWindows, Unix systems and Macintosh computers. I have not had time to test this on more than MSWindows but it certainly allows the novice to focus on C++ programming while enjoying the benefits of some graphical programming. Sadly there are several fundamental flaws in the implementation. The most significant of these is the failure to provide any virtual destructors in base classes. Indeed the authors seem to have a blind spot (and by deduction so did their technical reviewers) where it comes to the concept of virtual functions. They do not even touch on the subject until sometime after they have started covering template functions.

The pace of the text accelerates alarmingly. It isn't until page 363 that the authors start coverage of writing your own class. Inheritance has to wait till page 659. The main text finishes on page 791. In other words all the big stuff that makes C++ such a powerful language is squeezed into the last sixth of the main text. I think this book has a lot going for it so it is a shame that some of the flaws lie in areas where good programming is important. It also sadly reflects on the authors' own C++ that their own code is flawed this way. None-the-less it is a good candidate for introducing programming virgins to C++ as long as they are warned that the book falls short in some places and that the authors' code needs some serious work.