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 :

comment eviter les #inlude recursif?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Par défaut comment eviter les #inlude recursif?
    Bonjour, j'ai des erreurs de compilation etranges. Je me suis apercu qu'au moins un header (appelons le header1.h) inclut un header (appelons le header2.h) qui l'inclut. Evidemment entre les deux il y a plusieurs headers ie header1.h n'inclut pas directement header2.h. Selon moi il s'agit d'inclusion recursive de headers.

    Comment eviter ces inlusions recursives?

    Je dois vous dire que je n'ai pas oublie de mettre ce qui suit dans mes headers:

    #ifndef <nom du header>
    #define <nom du header>

    le code du header

    #endif

    Merci a l'avance,

    Frank...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Par défaut
    Bonjour,
    La solution conventionnelle est d'utiliser les forwards declaration
    http://cpp.developpez.com/faq/cpp/?p...erence_croisee

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par omc24 Voir le message
    Bonjour,
    La solution conventionnelle est d'utiliser les forwards declaration
    http://cpp.developpez.com/faq/cpp/?p...erence_croisee
    La solution conventionnelle consiste à designer son code de manière à éviter de tels besoins

    La question est : pourquoi est-ce que header1 a besoin de header2, et pourquoi est-ce que header2 a besoin de header1 ?
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  4. #4
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    Citation Envoyé par Emmanuel Deloget Voir le message
    La solution conventionnelle consiste à designer son code de manière à éviter de tels besoins

    La question est : pourquoi est-ce que header1 a besoin de header2, et pourquoi est-ce que header2 a besoin de header1 ?
    même opinion, le design initial est la source de 90% des joies/problèmes d'un projet.

    Pour completer la question si il ne s'agit pas d'une simple question théorique.
    Si tu souhaite que l'on t'aide a resoudre un problème de design pour eviter la double inclusion, il peut être intéréssant de donner des details sur ce que sont censé representer/contenir header1 et header2.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Par défaut
    , arf !

Discussions similaires

  1. Réponses: 10
    Dernier message: 18/07/2007, 17h36
  2. Réponses: 2
    Dernier message: 11/09/2006, 10h49
  3. Comment eviter les doubons dans une requête?
    Par jyms2006 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/03/2006, 14h08
  4. [TP] Lecture de nombres : comment éviter les plantages ?
    Par le-an dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 20/11/2005, 14h54
  5. [C#] Comment eviter les boucles infinies ?
    Par Thomas Lebrun dans le forum C#
    Réponses: 12
    Dernier message: 09/06/2004, 00h04

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