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 :

Multiple declaration of "objet_geo"


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Par défaut Multiple declaration of "objet_geo"
    Voila la situation

    j'ai une classe abstraite "objet_geo".

    une classe "MonPoint" hérite d'"objet_geo"

    une classe "Layer" qui contient std::vector<objet_geo*> vFigures; (elle include donc objet_geo.h)

    une classe "Dessin" qui contient:
    plusieurs "MonPoint" (elle include donc MonPoint.h)
    un vecteur de "Layers" std::vector<Layer> vLayers; (elle include donc aussi Layer.h)


    a la compilation j'obtiens :

    "Multiple declaration of objet_geo"

    Vous pourriez m'aider ?

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    des gardes d'inclusion ?
    Citation Envoyé par Allez, je le fais en couleurs, cette fois
    #ifndef OBJET_GEO_H_INCLUS
    #define OBJET_GEO_H_INCLUS


    class objet_geo
    {
    //... contenu
    };

    #endif// ! OBJET_GEO_H_INCLUS
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Par défaut
    Oui tout a fait j'ai trouvé ca sur le forum aussi ... j'aurais du plus chercher
    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Par défaut
    Finalement c'est pas si résolu que ca : maintenant j'obtiens un truc du style :

    [Linker Error] Unresolved external 'objet_geo::dessineToi()' referenced from C:\DOCUMENTS AND SETTINGS\...\MONPOINT.OBJ
    MonPoint hérite de objet_geo au passage ... et dessineToi() est definie : virtual dans objet_geo
    non virtual dans MonPoint

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    1°) Même si elle n'est pas déclarée virtual dans MonPoint, elle l'est quand même. Certains compilateurs te mettront un warning pour te signaler ça (je te conseille de re-préciser virtual dans la déclaration de MonPoint, pour faciliter la lecture)

    2°) Je peux voir le code de la fonction DessineToi() ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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