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 :

#include problem


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut #include problem
    Bonjour,

    J'ai un problème au niveau de la directive #include,
    voilà je dispose de ces fichiers:
    donnees.h; donnees.cpp;
    solution.h; solution.cpp;
    orientation.h; orientation.cpp;

    Dans solution.h et orientation.h j'ai besoin de donnees.h:
    #include "donnees.h"
    Mais dans orientation.h, jai besoin de solution.h:
    #include "solution.h"

    Je me retrouve alors avec une erreur de compilation:
    donnees.h a semble-t-il été ajouté deux fois à orientation.h

    Je peux compenser ce probleme en enlevant
    #include "donnees.h" de mon fichier orientation.h

    Mais je voudrais une autre solution afin de ne pas retoucher le code des classes précédemment écrites chaque fois que j'ai besoin de donnees.h et d'un autre .h qui inclurait donnees.h.
    J'espère avoir été assez explicatif. Merci de votre réponse

  2. #2
    Membre expérimenté Avatar de Twindruff
    Inscrit en
    Janvier 2005
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 216
    Par défaut
    tu peux remplacer tes inclusions par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #ifndef FICHIER_H
    #define FICHIER_H
    #include "fichier.h"
    #endif
    ou bien dans chaque header.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef FICHIER_H
    #define FICHIER_H
     
    // le code
     
    #endif

    Comme ça évite les inclusions multiples.

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut OKI
    Merci beaucoup pour ton aide.

    Mais pourquoi ce problème ne se présente pas avec par exemple
    #include <iostream>?

  4. #4
    Membre expérimenté Avatar de Twindruff
    Inscrit en
    Janvier 2005
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 216
    Par défaut
    parcequ'il le fait de lui même si on regarde à l'intérieur,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #ifndef _IOSTREAM_
    #define _IOSTREAM_
    // des choses
    #endif
    d'ailleurs c'est mieux de faire comme ça : faire le test dans le header plutôt que dans le fichier qui l'inclue.

  5. #5
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut d'accord
    Ok, merci encore

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

Discussions similaires

  1. Probleme d'include
    Par Aerio dans le forum Langage
    Réponses: 1
    Dernier message: 08/12/2005, 20h23
  2. [Compilation] Probleme d'include
    Par Nalfouille dans le forum MFC
    Réponses: 6
    Dernier message: 06/12/2005, 20h46
  3. Réponses: 1
    Dernier message: 08/09/2005, 19h53
  4. Probleme d'include XML/XSL en ASP
    Par baygz dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 02/07/2004, 16h38
  5. probleme de #include en C++ .NET
    Par CHIERA dans le forum MFC
    Réponses: 2
    Dernier message: 27/02/2004, 11h04

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