Wednesday, July 4, 2012

Everybody knows how is tricky to manage all the complexity and the feature that c++ provides. From memory allocation to copy constructor ending up with address manipulation, It's very easy to make a mistake and sometimes is difficult to find the reason of it.

Safe C++ is a book for intermediate C++ users who wants avoid common mistakes that usually happens. From memory leaks to comparison operator, the book explains how a simple macro definition can help you to remove problems. The book is easy to read for who is practical with C++ and the 140 pages that composes it flows very fast. The book is composed by 17 short chapters, each of which tackles a specific issue:

The first 3 chapters are sort of introduction to the specific issues treated later in the book: Chapter 1: Where does c++ bugs come from? Chapter 2: When to catch a bug? Chapter 3: What to do when we encounter an error at runtime.

The middle chapters are more specific and tackles a specific issue: Chapter 4: Index out of bounds

Chapter 5: Pointer Arithmetic

Chapter 6: Invalid Pointers, References and Iterators

Chapter 7: Uninitialized Variables

Chapter 8: Memory Leaks

Chapter 9: Deferencing NULL pointers

Chapter 10: Copy Constructors and Assignment operators

Chapter 11: Avoid writing code in the destructors

Chapter 12: How to write consistent comparison operators

Chapter 13: Errors when using Standard C libraries

The last three chapters talks about testing and how to help the debugging process:

Chapter 14: General testing principles

Chapter 15: Debug-On-Error strategy

Chapter 16: Making your code debugger-friendly

This book explains how to avoid most common mistakes and bad pratices when programming in C/C++. It's a good book for intermidiate and can help also beginners to understand some tricky behaviour of C++. Together with other more general books as the pragmatic programmers series and so on, can be a good reading to master a good coding style.