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 :

Pointeur sur une fonction d'une classe (pour un callback)


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Pointeur sur une fonction d'une classe (pour un callback)
    Voilà en gros j'ai une classe avec une fonction, et je voudrai la définir comme callback pour glut

    J'ai essayé

    fonction
    this->fonction
    maclasse::fonction
    maclasse::*fonction
    this->*fonction

    Je sais plus quoi faire :/ j'ai cherché un peu dans les cours mais pas réussi à trouver...
    Si quelqu'un pourrait m'aider, je suis sûr que c'est tout bête, et ça m'aiderait grandement.

    Merci d'avance !

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Points : 256
    Points
    256
    Par défaut
    je sais pas si ça répondra à ta question, mais regarde-là :
    http://c.developpez.com/faq/cpp/?pag...onction_membre

  3. #3
    Membre éclairé Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Points : 844
    Points
    844
    Par défaut
    Pour une classe définie comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class c {
       int f1(float x);
    }
    Tu peut définir un type pointeur sur fonction de la classe c
    renvoyant un int et accéptant un paramètre float (c'est pour l'exemple),
    en écrivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef int (c::*f_ptr_t)(float x);
    Ensuite tu définit une variable pointeur :

    Puis tu affecte la variable à la bonne fonction :

    Ensuite, pour appeller la fonction, il faut une instance
    concrète de c :

    Enfin, tu appelles la fonction via le pointeur par :

    Note : si obj n'est pas elle même un pointeur, tu fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c obj2();
    obj2.*f_ptr(3.14);
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

  4. #4
    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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Quelques corrections :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c obj2();
    obj2.*f_ptr(3.14);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c obj2;
    (obj2.*f_ptr)(3.14);

  5. #5
    Membre éclairé Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Points : 844
    Points
    844
    Par défaut
    Tiens j'avais oublié que les parenthèse étaient obligatoires.
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour ces réponses (oups désolé du retard)


Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Réponses: 11
    Dernier message: 23/11/2011, 16h46
  3. récupérer une variable d'une fonction dans une classe
    Par free_dom dans le forum Général Python
    Réponses: 20
    Dernier message: 08/07/2009, 12h35
  4. [PHP-JS] une fonction dans une fonction
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 25/06/2006, 19h14
  5. Réponses: 3
    Dernier message: 29/04/2006, 13h02

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