IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

definition de plusieurs classes dans un meme header


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 114
    Par défaut definition de plusieurs classes dans un meme header
    je voudrais savoir si le fait de definir plusieurs classes dans un meme fichier .h ne pose pas de probleme particulier?

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 287
    Par défaut
    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...

  3. #3
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut
    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

  4. #4
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    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.

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    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.

  6. #6
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    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).


  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 287
    Par défaut
    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...

  8. #8
    Membre expérimenté
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Par défaut
    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).

  9. #9
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    On a aussi de nombreux exemples de cette pratique dans les .h des MFC.

Discussions similaires

  1. Plusieurs class dans un meme fichier.java
    Par bipbip2006 dans le forum Langage
    Réponses: 4
    Dernier message: 10/12/2007, 10h35
  2. [STRUTS] Plusieurs actions dans une meme page
    Par DarkWark dans le forum Struts 1
    Réponses: 22
    Dernier message: 10/01/2006, 16h18
  3. plusieurs reponses dans un meme champ
    Par Clelia dans le forum Access
    Réponses: 2
    Dernier message: 25/12/2005, 22h54
  4. création de plusieurs fiches dans un meme formulaire...
    Par Toff !!!!! dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2005, 13h44
  5. Réponses: 9
    Dernier message: 25/09/2005, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo