Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Advanced
Dec 9, 2002



Building the Right Environment to Support AI, Machine Learning and Deep Learning

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;
Ray Hunter
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date