REVIEW - C++ from Scratch


C++ from Scratch


Jesse Liberty



Que Publishing (1999)




Paul F. Johnson


August 2004



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

and 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

in place of
, 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.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.