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, ...
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.
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.
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.![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager