je voudrais savoir si le fait de definir plusieurs classes dans un meme fichier .h ne pose pas de probleme particulier?
je voudrais savoir si le fait de definir plusieurs classes dans un meme fichier .h ne pose pas de probleme particulier?
Aucun.
A la limite quand on a besoin d'une seule des classes, on charge plus de choses que nécessaire ce qui peut ralentir la compil.
Découpe suivant les rôles, les utilisations, ...
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
aucun ! si tu toutche un peut au different editeur de code de code comme code::block tu vera qu'il te le fait meme automatiquement pour faire des GUI
Cela ne pose pas de problème de compilation, en effet. Cependant, et c'est un avis personnel, je le déconseille pour les raisons suivantes:
-> clarté du code. Lorsque quelqu'un (toi y compris) reprendra le code, si les classes sont bien définie: 1 fichier .cpp et 1 .h par classe, c'est toujours plus simple pour naviguer dans le code.
-> temps de compilation. En effet, si plusieurs classes sont définies dans un même .h, lorsque tu veux utiliser une de ces classes, il te faut inclure, donc définir, toutes les classes. De plus, si tu modifie une seule de ces classes, le compilateur risque de recompiler toutes les classes.
-> facilité de manipulation des fichiers. Par exemple, si jamais tu veux utiliser une seule de ces classes dans un autre projet, il est toujours plus simple et plus rapide de copier directement le fichier, plutôt que de faire des copier/coller du code.
Il m'arrive réglièrement de le faire quand :
- Les classes sont très petites (3/4 fonctions)
- Les classes sont très liées, et en utiliser une ne se conçoit pas sans utiliser les autres
- Les classes sont peu nombreuses
- Le code est peu amené à évoluer
En général, je met dans ce cas une classe de base, 2/3 dérivées de celle-ci, et la factory permettant de les créer. L'alternative consistant à avoir 10 fichiers me semble moins lisible. Mais c'est vrai qu'en général (sauf classe imbriquée, évidemment), une classe par fichier.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Je suis d'accord, mais à ce moment là, pourquoi faire plusieurs classes?
(je pinaille, j'en conviens, mais je suis curieux parce que personnellement, ça ne m'est jamais arrivé de faire ça).
![]()
Imagine que tu doives écrire un conteneur et son itérateur.
Un classe Et un petit proxy qu'il lui et associé et qu'elle renvoie.
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Sur le projet sur lequel je travaille ca m'est arrivé de rencontrer (à part les cas de plusieurs classes dans le même .h), la définition d'une classe dans une autre classe (genre un Dialog et la grille associée).
On a aussi de nombreux exemples de cette pratique dans les .h des MFC.![]()
Partager