si tu veux etre clean
tu ne mets dans tes .h
que les infos que tu souhaites
partager => interface
et dans .cpp tout ce qui concerne
l'implantation.
exemple ton type maclasse est declare avec un membre
qui a besoin d'une declaration externe
contenu de maclasse.h:
Code :
- #include "declaration1.h"
- class maclasse {
- mon_type_externe var;
- ...
- };
|
deuxieme solution, tu ne desires pas
inclure cette declaration dans maclasse.h
en fait tu n'en n'as pas besoin si tu
declares var1 comme une reference vers un objet
de type "mon_type_externe".
deuxieme implantation de maclasse.h
Code :
- // on declare au prealable la classe
- // mon_type_externe, ton compilateur s'attend
- // a trouver la definition complete plus tard
- class mon_type_externe;
- class maclasse {
- mon_type_externe * var;
- ...
- };
|
dans ce cas, des que tu voudras utiliser les
proprietes et methodes de mon_type_externe
il faudra penser a inclure au prealable "declaration1.h"
Si ton souci est la rapidite de compilation
ainsi que l'encapsulation, ne mets dans ton header
que ce qui concerne l'interface et deplace
la partie implantation dans le .cpp
(cela inclut les headers qui ne sont pas
utilises par la definition mais qui sont utiles
au code)
Evidemment il y a des cas ou il faut
faire autrement, notamment quand pour
des raisons d'efficacite, tu veux que les objets
puissent etre entierement locaux et que ses methodes
soient inlines.
(abstraction et performance s'opposent parfois)
A+
LEGREG
[edtdd]--Message édité par legreg--[/edtdd]