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"     <- 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;
See also  How to Avoid Money Transfer Scams  

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist