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:
Microsoft Visual C++ 5 No experience required
Author:
Steven Holzner
ISBN:
0 7821 2120 9
Publisher:
Sybex
Pages:
571
Price:
£27-50
Reviewer:
Francis Glassborow
Subject:
beginner's c++
Appeared in:
10-6
This is the kind of book that endangers my health. I have certain minimum requirements for any book that purports to teach C++. This book fails them. I do not have time to analyse the quality of Windows specific code. I find it difficult to read at the best of times. Indeed it is the quality of much of this code that gives C++ such a bad name. I assume from the prevalence of upper case identifiers that Microsoft wizards and libraries rely heavily on the pre-processor. As such use is the antithesis of good style in C++ we can lay the blame for this where it belongs.

However one consequence of the poor example that MFC sets is that we have authors writing chapters aiming to give the reader a grasp of C++ (though how you can expect to do this in 42 pages defeats me) that include such a multitude of flaws that I have not space to enumerate them. However, just as an example, the author defines a class

SchoolClass
with two data members:
int *ClassData
and
int ClassDataIndex
. The former is initialised (in the body of the constructor) to a dynamic array and the latter is initialised to zero. What tracks the size of the array? Different member functions change
ClassDataIndex
. At least one uses it to limit the execution of a loop. Another increments it (much of the problem of global data in a microcosm). The destructor uses the wrong
delete
. There is no declaration of a copy constructor nor of a copy assignment.

I would not employ a programmer who wrote such poor C++, and I would not encourage you to read books from authors whose basic C++ source code is so poor. A professional in any area must be able to get the fundamentals right.

Maybe the rest of the book is an excellent exposition of using Visual C++ 5 to produce Windows applications, but that is like expecting palaces built on foundations of sand. Even Herbert Schildt at his worst writes better code than this.