In C/C++ header files, it’s often necessary to include the header files of sub classes or classes which are used. For example:
#include "a.h" <- in b.h
Sometimes header files need to include each other, as in:
#include "a.h" <- in b.h#include "b.h" <- in a.h
This results in recursion within the headers, which often cannot be solved by using #ifndef's. To work around this, only include headers in .cpp files. In header files, simply re-declare the class you need to use (e.g. class B;). As methods will only be called in the .cpp files, there is no need to include the full header.
class B &tl;- in a.h..void SetB(B * b);..B * myB;