C++ Without Fear Book ReviewC++ Without Fear, by Brian Overland, is designed to be a first introduction to programming in C++. While you won't find every single feature of the language, it does cover a significant portion of what you need when starting out--everything from the basics such as if statements, loops, and functions to arrays, pointers and dynamic memory allocation, file i/o, and many features of classes. Overland even discusses exception handling, which is a nice touch. Another nice touch is the included CD, which comes with a C++ compiler that runs on any Windows machine. Having an easy-to-install compiler can significantly speed your introduction to the language. Perhaps the most noticeable omission is a complete lack of coverage of templates, but this may be a reasonable choice for a book designed for beginners.
The writing style and formatting are accessible. Overland writes clearly and capably describes concepts rather than simply avoiding them and hoping the reader doesn't notice. A nice feature of the book is that each example is accompanied by a "How it Works" section that clearly explains what's going on. Because it's well-labeled, if you feel comfortable with an example program, you can safely skip it. I also appreciated his tendency to give hints that a feature was going to be covered in more detail later--often, readers get stuck re-reading a paragraph to extract some key meaning that doesn't get answered until the next paragraph or page, but Overland frequently notes when this is the case. This makes for easier reading and less confusion.
The one downside to C++ Without Fear is that Overland's writing isn't completely up-to-date on some minor issues of C++ standards. For instance, the header file stdlib.h should be replaced with cstdlib, but his examples do not reflect this. Fortunately, most of these mistakes are minor, and he avoids many of the common pitfalls of poor introductions to C/C++, such as using void main or completely avoiding the topic of namespaces. On the other hand, he does treat topics like strings very well, explaining both the old c-style strings and the newer C++ style strings.
Because C++ Without Fear comes with a compiler, it is an excellent choice for anyone who wishes to avoid many of the hassles that normally accompany installing and setting up a compiler for the first time. Moreover, C++ Without Fear includes a reasonable number of exercises to give readers some ideas for practicing what they have learned. The exercises aren't particularly deep or interesting, but they will give some finger practice.