Use forward declaration when possible.
Suppose you want to define a new class B
that uses objects of class A
.
-
B
only 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 ; } ;
-
B
derives fromA
orB
explicitely (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) ; }