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 :

executer une fonction par son nom en string


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 53
    Points
    53
    Par défaut executer une fonction par son nom en string
    Bonjour,
    voilà j'utilise un web service (soap) qui fonction comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    soap_call_nomfonctionsurleserveur(arguments);
    Donc mon idée est de concaténer "soap_call_" avec mes divers "nomfonctionsurleserveur" et ensuite d'appeler cette fonction en C++ grace à cette concaténation.

    Sous matlab c'était tout simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(nomfonction, argument fonction)
    mais en C++ je n'en ai aucune idée.

    Auriez vous des tuyaux ?

    Merci par avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Salut,

    Un solution pourrait être de créer une Map pour

    QMap <QString(nomdelafonction),Pointeur vers ta fonction>

    ++

    F.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    Pourquoi donner l'exemple avec Qt?

    std::map et std::string en standard

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par nikko34 Voir le message
    Pourquoi donner l'exemple avec Qt?
    oooops

    ouaip, c'est ce qui arrive quand on se trompe de forum. Mais bon ça reste valable avec des conteneurs standards.

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 53
    Points
    53
    Par défaut
    Merci pour ces réponses.

    Si j'ai bien compris je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::map<(string avec le nom de la fonction),pointeur>
    et après pour appeler la fonction il suffit que j'appel le pointeur ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    Si je me rappelle bien, le problème c'est qu'il faut que toutes tes fonctions aient la même signature ( même retour, mêmes arguments ).

    Sinon ya toujours la méthode du "if nom=="lenom" then function() "

  7. #7
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 53
    Points
    53
    Par défaut
    la méthode du if justement nom. L'idée c'est que là j'ai un client et un serveur et je veux pas recompiler le client a chaque ajout d'application. Mais c'est bon vu que mes fonctions ont un schéma imposé ^^

    Merci.

  8. #8
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    Citation Envoyé par milach Voir le message
    Merci pour ces réponses.

    Si j'ai bien compris je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::map<(string avec le nom de la fonction),pointeur>
    et après pour appeler la fonction il suffit que j'appel le pointeur ?
    D'abord tu déclares un std::map<,>, ensuite tu le remplis avec toutes les fonctions qui sont susceptibles d'être appelées (j'ai bien dis toutes), et puis seulement tu peux faire une recherche dans le map avec ta string. Avec le pointeur retourné tu pourras appeler la fonction associée, après avoir vérifié que la recherche dans le map ait bien abouti bien sûr.
    Je suppose que tu sais cela et que je ne fais que le rappeler...

Discussions similaires

  1. [DOM] appeler une fonction via son nom (qui est une string)
    Par elekis dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/07/2008, 13h06
  2. [POO] Appeler une fonction par son nom dans une variable
    Par whitespirit dans le forum Langage
    Réponses: 16
    Dernier message: 18/06/2008, 11h23
  3. Réponses: 3
    Dernier message: 25/02/2007, 18h49
  4. appeler une fonction connaissant son nom (en string)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 20/07/2004, 00h46
  5. [Reflection] Executer une fonction dont le nom est contenu dans un String
    Par christobal dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/07/2004, 15h23

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