En fait, pour 2 fichiers d'en-tête a.h et b.h implémenté dans a.cpp et b.cpp partageant des données communes (variables globales et fonctions), je vois trois possibilités (par avance désolé si je n'utilise pas le vocabulaire approprié) :
1) a.h et b.h contiennent uniquement les déclarations des définitions se trouvant respectivement dans a.cpp et b.cpp.
Il faut alors inclure au début de a.cpp et b.cpp les deux fichiers d'en-tête.
- Avantage : facile à mettre en oeuvre puisqu'il n'y a pas besoin de déclarer ce qui provient de l'autre header.
- Inconvénient : a.cpp et b.cpp ne sont pas indépendants à la compilation.
2) a.h contient les déclaration des définitions se trouvant dans a.cpp ainsi que toutes celles nécessaires provenant d'autres fichiers sources. De même pour b.h.
- Avantage : il est facile de voir de quelles variables globales / fonctions dépend a.cpp. De plus a.cpp et b.cpp sont indépendant à la compilation.
3) Solution lue sur
cette page :
a.h contient toutes les déclarations nécessaires à la compilation de a.cpp tandis que b.h contient uniquement les déclaration de définitions de b.cpp.
- Avantage : a.h est indépendant de b.h
Dans mon cas, j'ai appliqué la solution 2. Qu'en pensez-vous?
Partager