One way of RefactoringCppToReduceDependencies is to use forward references. Suppose we have a class Beta that uses a class Alpha. Instead of writing Beta.h as #include "Alpha.h" class Beta { Alpha *a; }; we write class Alpha; class Beta { Alpha *a; }; and delay the inclusion of alpha.h to beta.cpp. That way things that depend on beta.h aren't forced to depend on alpha.h. This is also a good way to avoid cyclic file dependencies.