Some rules to develop nice C++ code

The following rules should help you to produce C++ code that is easier to debug, faster to compile, and easier to maintain.
DEBUG: use assertions
INCLUDE: use forward declaration when possible