By including header files that you don't need, you are giving unecessary work to the preprocessor and hence slowing down your compile time.

Any data type that you declare either by reference or by pointer does not need to have its header included. You can forward declare it and should always forward declare it.

@Methedrine Never use 'using namespace xxx' in a header file. It is very dangerous!