I usually like Jesse's books, but not in this case. I would not recommend this book to anyone as it is just badly written.
According to the user level, the book is aimed at beginners. The book's style for teaching C++ is to program first, explain later, which usually is quite a good idea, but only when what you are doing is explained properly.
From an early stage, things become annoying, as the book seems mixed up. It starts by saying that the code should work on any standard compliant compiler. So why will it not work on gcc 3.3? The book looks like it was written by two people. One person appears to be using a compiler that rejects
iostream.hand does not use namespaces; the other using a compiler that accepts old, broken code. This is worse than useless for a beginner who needs to type in the code exactly as written and expects it work there and then, without having to worry about why the code does not compile.
Other non-compatible features including a header which is not described for almost 40 pages after it is first used; using old C headers instead of C++ headers - there are quite a few instances of using
time.hin place of
ctime, as well as using the C style method of generating a random number (seed rand() with time(NULL)) instead of the more useful C++ method.
The description of object-orientated programming is rather weak. Even for a beginner.
While the use of the STL is nice to see, the descriptions of the object methods and how they work is poor. This is a common thread. For instance, there is very little on error trapping (essential for the program being developed throughout the book). The index is worse than useless; it does not cover any of the STL methods or in some cases, important sections of the book.
UML is supposed to be covered in the book. If it was, I did not recognise it.
Definitely one to leave on the shelf.