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 de methode


Sujet :

C++

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 266
    Points : 86
    Points
    86
    Par défaut Pointeur de methode
    Bonjour,
    je souhaiterais utiliser les pointeurs de methodes. J'ai donc suivi un tuto, mais là je n'arrive pas a faire compilé mon code.

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Propriete
    {
    protected : 
        AbstractItem *pItem; 
        void (* pOnChange) (void) ;
    public:
            Propriete();
            ...
            void SetValue(QString val);
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define appelleFonctionMembre(objet,pointeur)  (objet->*pointeur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void Propriete::SetValue(QString val)
    {
         if ( pOnChange== NULL)
                 return;
            //(pItem->*pOnChange)(val);
            appelleFonctionMembre(pItem,pOnChange)(); //<<<<<<<fonction ciblé par l'erreur de compilation
     
    }
    mais je reçoit immanquablement cette erreur de compilation :
    propriete.cpp:101: erreur : C2297: '->*'ÿ: non conforme, l'op‚rande droit est du type 'void (__cdecl *)(void)'
    je ne vois vraiment pas quelle est mon erreur, pourriez vous m'aider s'il vous plait?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void (* pOnChange) (void) ;
    Tu as déclaré un pointeur vers une méthode qui ne prend aucun paramètre. Cette méthode n'est pas non plus membre d'aucune classe.

    Pour un pointeur vers une méthode membre il faut le spécifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void (CLASS::*pOnChange) (void) ;
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 266
    Points : 86
    Points
    86
    Par défaut
    nickel bah c'était ça . Je te remercie beaucoup

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Bonjour!
    En passant: très souvent il y a d'autres solution que les pointeurs de fonctions en C++

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

Discussions similaires

  1. [Débutant] Methode generique et pointeurs en c#
    Par cliclik97160 dans le forum C#
    Réponses: 5
    Dernier message: 29/04/2014, 10h18
  2. Réponses: 3
    Dernier message: 11/08/2011, 09h39
  3. pointeur de methode vers pointeur de fonction
    Par yvesall dans le forum GTK+
    Réponses: 1
    Dernier message: 19/11/2008, 17h23
  4. Réponses: 12
    Dernier message: 30/06/2006, 16h46
  5. Pointeur sur une methode d'une classe
    Par Pe04 dans le forum C++
    Réponses: 2
    Dernier message: 02/03/2006, 13h29

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