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

SL & STL C++ Discussion :

std map problème récurrent


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut std map problème récurrent
    Bonjour,
    mon problème est très simple :
    j'ai une classe avec un constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Engine::Gui::Button::Button(std::string File_Name)
    (je ne peux pas mettre tout le code c'est un projet conséquent)
    et voilà la map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::map <sf::Uint32,Engine::Gui::Button> Engine::Gui::Gui_Lister;
    Voilà ma seule erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    C:\Program Files\Microsoft Visual Studio 8\VC\include\utility(44) : error C2664: 'Engine::Gui::Button::Button(std::string)'*: impossible de convertir le paramètre 1 de 'Engine::Gui::Button *const ' en 'std::string'
    1>        Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
    1>        .\Gui.cpp(107)*: voir la référence à l'instanciation de la fonction modèle 'std::pair<_Ty1,_Ty2>::pair<sf::Uint32,Engine::Gui::Button*>(const std::pair<sf::Uint32,Engine::Gui::Button *> &)' en cours de compilation
    1>        with
    1>        [
    1>            _Ty1=const sf::Uint32,
    1>            _Ty2=Engine::Gui::Button
    1>        ]
    1>Génération de code en cours...
    Que vient faire le paramètre 1 de mon constructeur dans la compilation de ma map....
    J'ai déjà eut ce genre de problème et je l'ai résolu en feintant mais là j'ai pas le choix.
    Donc si quelqu'un a une idée de quoi cela pourrait venir merci d'avance.
    Je pourrais poster du code supplémentaire pas de problème.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Intuitivement, je dirais que ta classe n'a pas de constructeur par défaut.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Merci
    Mais malheureusement hier soir j'ai essayé de mettre un constructeur par défaut et l'erreur est toujours la même...

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    L'erreur est à la déclaration de la map ou lors de l'appel d'un algo?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    L'erreur est à la déclaration, pendant la compilation quoi

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    As-tu un copy constructeur?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Euh non mais en quoi j'en ais besoin pour une map ?
    J'ai une autre classe utilisée dans une multimap qui n'a pas de constructeur par copie...
    Je vais quand même essayer on ne sait jamais merci

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Citation Envoyé par Champignon_atomik Voir le message
    Que vient faire le paramètre 1 de mon constructeur dans la compilation de ma map....
    Le compilateur fait ce qu'il peut, tu lui passe une std::pair<sf::Uint32,Engine::Gui::Button*> là ou il faudrait une std::pair<sf::Uint32,Engine::Gui::Button>.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Euh je lui passe une std::pair<sf::Uint32,Engine::Gui::Button>
    pas un pointeur.
    A moins que je vois pas de quoi tu parles

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    L'erreur doit venir de là tout simplement :

    Gui_Lister.insert(std::make_pair(Pos,this));

    ça expliquerait tout

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Mais je fais comment pour passer un objet temporaire dans le propre constructeur de la classe avec le constructeur surchargé......

    Je sais pas si ça va marcher je vais essayer, mais ça m'a l'air tordu tout ça

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    'this' est un pointeur, ne suffirait-il pas de rajouter * devant ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Gui_Lister.insert(std::make_pair(Pos,*this));

Discussions similaires

  1. Problème avec les std::map
    Par iori11 dans le forum SL & STL
    Réponses: 6
    Dernier message: 17/07/2009, 15h08
  2. Problème remplissage std::map
    Par Pixcoder dans le forum Langage
    Réponses: 9
    Dernier message: 13/06/2009, 10h21
  3. extern std:map problème exécution
    Par Champignon_atomik dans le forum C++
    Réponses: 10
    Dernier message: 08/04/2008, 11h09
  4. Problème de class template et std::map
    Par bathof dans le forum Langage
    Réponses: 2
    Dernier message: 31/07/2007, 22h18
  5. Problème de fonction "const" avec une std::map
    Par Clad3 dans le forum SL & STL
    Réponses: 3
    Dernier message: 02/01/2007, 12h38

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