As far as I know, there is no difference in including the header file in the source or header file. Please note that #include is a preprocessor macro, and all it does is that it replaces the contents of the header file in the place where it is included.
In the above example, if globals.h looks like this,
#ifndef GLOBALS_H_ #define GLOBALS_H_ #define MYGLOBAL_VARIABLE 10 #endif
source files after the preprocessor completes will look like this.
#ifndef GLOBALS_H_ #define GLOBALS_H_ #define MYGLOBAL_VARIABLE 10 #endif Test::Test() { }
source share