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 :

Probleme de "matching"


Sujet :

C++

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut Probleme de "matching"
    Voici le probleme, jobtient lerreur suivante lorsque jessaie de compiler mon fichier stl_import.cpp

    stl_import.cpp:137: instantiated from here
    ../template/tpl_grille.h:214: error: no matching function for call to `BOITE_3D::BOITE_3D(BOITE_3D)'
    ../outil/ot_boite_3D.h:42: note: candidates are: BOITE_3D::BOITE_3D(BOITE_3D&)




    Alors voici le code pour stl_import.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #include "mg_noeud.h"
    ...
    TPL_GRILLE<MG_NOEUD*> grille;
    MG_NOEUD* noeud=mai->get_mg_noeud(i);
    grille.inserer(noeud); // ligne 137
    tpl_grille.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    virtual void inserer(A a) // ligne 214
    {
    BOITE_3D bt=a->get_boite_3D();
    ...
    }
    mg_noeud.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    virtual class BOITE_3D get_boite_3D(void);
    mg_noeud.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    BOITE_3D MG_NOEUD::get_boite_3D(void)
    {
    BOITE_3D boite(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
    return boite;
    }

    ot_boite_3d.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    BOITE_3D::BOITE_3D(BOITE_3D& mdd):x(mdd.x),y(mdd.y),z(mdd.z),dx(mdd.dx),dy(mdd.dy),dz(mdd.dz)
    {
    }
     
    BOITE_3D::BOITE_3D(double xmin,double ymin,double zmin,double xmax,double ymax,double zmax):x(xmin),y(ymin),z(zmin),dx(xmax-xmin),dy(ymax-ymin),dz(zmax-zmin)
    {
    if (dx<0.0000001) dx=0.00000001;
    if (dy<0.0000001) dy=0.00000001;
    if (dz<0.0000001) dz=0.00000001;
    }
    Dites moi si il vous manque des informations


    Je passe a cote de quelque chose??[/b]

  2. #2
    Membre habitué Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Points : 154
    Points
    154
    Par défaut
    sans vérifier il y a deux chose qui me paraisse bizare:

    1)
    dans mg_noeud.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    virtual class BOITE_3D get_boite_3D(void);
    le class est vraiment utile ?

    2)
    quand tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BOITE_3D bt=a->get_boite_3D();
    il te faut effectivement un constructeur par copie, mais le tient prend une ref, je pense qu'il faut une const ref

    Comme j'ai rien vérifié c'est peut-être des grosses anneries !

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut
    Je verifie tout suite apres diner, merci pour ton opinion je te tient au courant!

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut
    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BOITE_3D::BOITE_3D(const BOITE_3D& mdd):x(mdd.x),y(mdd.y),z(mdd.z),dx(mdd.dx),dy(mdd.dy),dz(mdd.dz)
    {
    }
    Il garde la meme erreur

  5. #5
    Membre habitué Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Points : 154
    Points
    154
    Par défaut
    sans le code minimum compilable qui reproduit l'érreur difficile de t'aider efficacement.
    Donc procédont par élimination.

    pour ta classe A, il y a-t-il les constructeurs qui vont bien ?
    N'as tu pas définit un constructeur avec arguments, ce qui a pour effet d'être obligé de l'utiliser.
    A a-t-il un lien de parenté avec BOITE_3D ?

    tu écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    virtual void inserer(A a) // ligne 214
    chez toi tu as bien écrit cela avec la classe qui va bien ::inserer ?

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut
    Ca fonctionne javais oublier de mettre le const egalement dans le .h

    Merci beaucoup pour ton aide Nic.

  7. #7
    Membre habitué Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Points : 154
    Points
    154
    Par défaut
    n'oublie pas de passer le thread en résolu !

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

Discussions similaires

  1. [MySQL] Problème de rquête avec Quôte
    Par yom17 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 23/10/2006, 10h58

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