Use forward declaration when possible.
Suppose you want to define a new class B that uses objects of class A.
-
Bonly uses references or pointers toA. Use forward declaration then you don’t need to include<A.h>. This will in turn speed a little bit the compilation.class A ; class B { private: A* fPtrA ; public: void mymethod(const& A) const ; } ; -
Bderives fromAorBexplicitely (or implicitely) uses objects of classA. You then need to include<A.h>#include <A.h> class B : public A { }; class C { private: A fA ; public: void mymethod(A par) ; }