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 :

Header C++ ? Bonne pratique


Sujet :

C++

  1. #1
    Membre expérimenté Avatar de Sceener
    Inscrit en
    Mai 2007
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 231
    Par défaut Header C++ ? Bonne pratique
    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 .

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    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

  3. #3
    Membre expérimenté Avatar de Sceener
    Inscrit en
    Mai 2007
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 231
    Par défaut
    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 ?

  4. #4
    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
    Je pense que c'est bien là la question à laquelle Laurent a répondu.
    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.

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class type;
    class AutreClasse { /* utilisation de "type" */ }
    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é.

    Donc encore une fois, relis bien le lien de Laurent.

  6. #6
    Membre expérimenté Avatar de Sceener
    Inscrit en
    Mai 2007
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 231
    Par défaut
    Merci à vous tous,

    je viens de comprendre qu'il s'agit de besoin et non de bonne pratiques.

    Merci encore.

  7. #7
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut

    Une autre "bonne pratique" est de crées des headers pour regrouper les templates ensemble et les fonction inline ensemble.
    cf FAQ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    avec pour les inlines
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "exemple.inl" // ou une autre extension
    Après la déclaration de la classe.

  8. #8
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    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...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bonnes pratiques de protections individuelles
    Par Community Management dans le forum Sécurité
    Réponses: 23
    Dernier message: 11/06/2024, 11h23
  2. Réponses: 2
    Dernier message: 03/09/2008, 02h27
  3. [Bonne pratique]Stratégie d'allocation
    Par jowo dans le forum C
    Réponses: 1
    Dernier message: 05/10/2005, 14h47
  4. [FOREIGN K] Valeur de champ = nom de table. Bonne pratique ?
    Par Seb des Monts dans le forum Langage SQL
    Réponses: 9
    Dernier message: 17/05/2005, 10h56

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