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 :

Problème avec fonctions et string/char


Sujet :

C++

Vue hybride

vdumont Problème avec fonctions et... 07/04/2006, 19h32
Laurent Gomila Il faut prendre en paramètre... 07/04/2006, 19h54
vdumont Merci pour la réponse, Je... 07/04/2006, 21h01
Matthieu Brucher Ben T n'est jamais construit,... 07/04/2006, 23h23
vdumont Hum, il me permet de créer... 08/04/2006, 06h49
Laurent Gomila Hum... Si tu pensais renvoyer... 08/04/2006, 07h33
vdumont Ouais euh désolé je crois que... 08/04/2006, 16h54
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Problème avec fonctions et string/char
    Bonjour, j'essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string path = dialog.GetPath().mb_str();
    unsigned int test = infoFile(path,"nbmaillage");
    Mais il me dit:
    103 E:\magic\VMM\unix_interface\interface.cpp no matching function for call to `MyFrame::infoFile(std::string&, const char[11])'


    Voici ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    template <class T>
    T MyFrame::infoFile(std::string &chemin, std::string &info) {
        size_t size = chemin.size() + 1;
        char * buffer = new char[size];
        strncpy(buffer, chemin.c_str(), size);
        MG_FILE fichier(buffer);
        switch (info) {
               case "nbmaillage":
                    return fichier.get_nb_mg_maillage();
               case "idmaillage":
                    // traité ultérieurement (sera codé plus tard)
                    break;
               default: break;
        }
    }
    J'ai essayer avec des const char* et des char* mais ca ne fonctionne pas

    Merci de m'éclairer.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Il faut prendre en paramètre une référence constante si tu veux pouvoir passer des temporaires non nommés (comme "nbmaillage").

    Par ailleurs, je ne sais pas si tu as simplement fait trop vite ton copier/coller, mais tu as un paramètre template T qui n'est spécifié nulle part lors de l'appel, et tu as une fonction retournant un T qui parfois ne renvoie rien (pas de return partout).

    Enfin, c'est assez beurk de passer des std::string en paramètre pour finalement les recopier dans tes tableaux de char...

    Bon allez encore un : un switch sur un std::string ne compilera jamais (valeur entières seulement). Voir la FAQ pour plus de détails.

  3. #3
    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
    Merci pour la réponse,

    Je sais qu'il manque des return je n'ai pas compléter la fonction encore.

    Mais je vois pas ce que tu veux dire avec le paramètre template T qui n'est spécifié nul part???

  4. #4
    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
    Ben T n'est jamais construit, on ne sait même pas ses caractéristiques, rien, il est inutile - comme le H de Hawaï -

  5. #5
    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
    Hum, il me permet de créer une fonction qui peut renvoyer plusieurs types?

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Hum... Si tu pensais renvoyer un truc différent dans chaque case, et que le fait de renvoyer un T ferait magiquement fonctionner le tout, alors non, ce ça ne marche pas comme ça.

    Après, peut-être que ma supposition est mauvaise et que ce que tu veux faire n'a rien à voir.

  7. #7
    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
    Ouais euh désolé je crois que j'avias besoin d'un solide rafraichissement sur les templates.

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

Discussions similaires

  1. Problème avec fonction
    Par Goundy dans le forum C
    Réponses: 24
    Dernier message: 01/10/2005, 20h17
  2. [MFC][WINSOCK] Problème avec fonction recv
    Par Le Farfadet dans le forum MFC
    Réponses: 4
    Dernier message: 23/09/2005, 11h00
  3. Problème avec fonction d'envoie de mail
    Par zyg dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 23/02/2005, 08h48
  4. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

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