C++ INCLUDE Rule : 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 to A. 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 from A or B explicitely (or implicitely) uses objects of class A.
You then need to include <A.h>
#include <A.h>
class B : public A {
} ;
class C {
private:
A fA ;
public:
void mymethod(A par) ;
}
|