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 :

inclusion de .h =>redefinition


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Par défaut inclusion de .h =>redefinition
    Bonjour,


    j'ai un probleme avec l'inclusion de plusieurs .h!

    J'ai pas mal cherché sur le forum et la faq et j'ai trouvé des topics sur les references croisés mais ca ne s'adapte pas trop a mon cas donc desole si c'est bete comme choux (pitetre) mais je poste:


    je dispose de ces fichiers;

    point.h
    point.cpp
    forme.h
    polygone.h
    polygone.cpp
    rectangle.h
    rectangle.cpp
    carre.h
    carre.cpp
    dans les .h on retrouve des declarations de class et dans les .cpp les declarations des fonctions membres et non membres.

    carre hérite de rectangle, qui hérite de polygone qui herite de forme.

    Les inclusions sont les suivantes:

    dans point.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #if !defined(_POINT_H)
    #define _POINT_H
    #include <iostream>
    #endif
    point.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include <iostream>
    #include <math.h>
    #include "point.h"
    forme.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #if !defined(_FORME_H)
    #define _FORME_H
    #include <iostream>
    #endif
    poly.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #if !defined(_POLYGONE_H)
    #define _POLYGONE_H
    #include <iostream>
    #include "forme.h"
    #include "point.h"
    poly.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <iostream>
    #include "polygone.h"
    rect.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #if !defined _RECTANCLE_H
    #define _RECTANGLE_H
    #include <iostream>
    #include "point.h"
    #include "polygone.h"
    #endif
    rect.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <iostream>
    #include "rectangle.h"
    carre.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #if !defined _CARRE_H
    #define _CARRE_H
    #include <iostream>
    #include "point.h"
    #include "carre.h"
    #include "rectangle.h"

    carre.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include <iostream>
    #include "carre.h"
    et enfin le main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include <iostream>
    #include "point.h"
    #include "carre.h"
    #include "rectangle.h"

    L'erreur du compil est la suivante:
    in file inlcluded from main.cpp
    redefinition of class::median
    previous definitioon of class median:rectangle
    je ne vois pas trop ou est l'erreur d'inclusion!
    Merci bcp de votre aide!

  2. #2
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut
    J'analyserai plus en détail après diner mais vite comme ca tu fais un


    #include "carre.h"

    à l'intérieur de ton carre.h même, enlève ca!

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Il doit y avoir deux classes qui ont le même nom donc si tu as redéfini la classe median, utilise un namespace pour spécifier celle que tu veux utiliser

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Par défaut
    J'apporte un peu de precision:

    median est mon namespace.

    J'y place toutes mes classes qui sont les suivantes:

    point
    forme
    polygone
    rectangle
    et carre

    Merci!

    EDIT:si vous connaissez des liens ou le principe est expliqué je suis preneur!

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Dans un de tes headers, tu redéfinis une classe que tu définis dans ton carre.h
    Si tu nous donnes l'erreur exacte, ça ira mieux

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/05/2007, 10h27
  2. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  3. Inclusion de fichier .h
    Par Tony49 dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/11/2002, 11h10
  4. Générer un nombre aléatoire entre 0 et 1 (INCLUS !!!)
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/08/2002, 16h30
  5. Inclusion de fichiers en IDL
    Par babou dans le forum CORBA
    Réponses: 10
    Dernier message: 30/07/2002, 16h47

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