Do NOT use NULL. This is old stuff. Since the new C++ 11 standard, there is a proper language keyword for null literals - nullptr. Use this everywhere.

I just noticed this here, but my comments applies to all other locations that I might have missed.