devxlogo

Avoiding Recursive Header Includes

Avoiding Recursive Header Includes

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"     

Sometimes header files need to include each other, as in:

 #include "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;

devx-admin

Share the Post: