Salut tout le monde ,
ma question est la quelle est la meilleur pratique , c'est de mettre les .h dans les headers eux même ou sur la source cpp ?
Merci de vos réponses .
Version imprimable
Salut tout le monde ,
ma question est la quelle est la meilleur pratique , c'est de mettre les .h dans les headers eux même ou sur la source cpp ?
Merci de vos réponses .
C'est de ne les mettre que là où on en a réellement besoin.
A ce sujet tu peux lire ceci :
http://c.developpez.com/faq/cpp/?pag...er_compilation
Ouups !!!,
je crois que je me suis mal exprimer en faite il s'agit des instructions Include .
quelle est la bonne pratique les mettres sur le .Cpp ou .h ?
Je pense que c'est bien là la question à laquelle Laurent a répondu.
Que te dire à part de relire le message de Laurent ...
La meilleure pratique, c'est de les mettre là ou tu en as besoin.
Quand tu n'as besoin que du nom d'un type dans un header (content une déclaration de classe par exemple), si type est une classe on écrit ceci :
Et dans le cpp, comme tu te sers des attributs et fonctions membres de type, tu dois forcément inclure le header dans lequel tout ceci est déclaré.Code:
1
2 class type; class AutreClasse { /* utilisation de "type" */ }
Donc encore une fois, relis bien le lien de Laurent.
Merci à vous tous,
je viens de comprendre qu'il s'agit de besoin et non de bonne pratiques.
Merci encore.
:salut:
Une autre "bonne pratique" est de crées des headers pour regrouper les templates ensemble et les fonction inline ensemble.
cf FAQ :
avec pour les inlinesCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // exemple.h #ifndef EXEMPLE_H #define EXEMPLE_H template <typename T> class Exemple { public: Exemple(); }; #include "exemple.tpp" // <-- astuce ici !!! #endif
Après la déclaration de la classe.Code:
1
2 #include "exemple.inl" // ou une autre extension
Ce n'est pas "parce que c'est joli" ou "parce que tout le monde fait comme ça" que cette méthode est utilisée. Il y a bien un gain de temps de compilation et une réduction des dépendances lors de l'utilisation des techniques données dans le lien...