Lorsqu'une donnée membre, un paramètre ou un retour de fonction est de type pointeur, le #include n'est pas nécessaire, de même pour les arguments ou les retours passés par valeur dans un header.
Dans le fichier .cpp, le 1er #include doit être celui qui correspond à l'implémentation.
Code :
- /*Header*/
- #ifndef X_H
- #define X_H
- class Y;
- class Point;
- class X
- {
- private :
- Y* pY;
-
- public :
- X();
- virtual ~X();
- Point GetPoint();
- void SetPoint(Point p);
-
- };
- #endif
|
Si on met '#include "Y.h"', on provoque un copier-coller de ce fichier à chaque lecture du fichier X.h , ce qui peut vite être coûteux...