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

Langage C++ Discussion :

[Pointeur de fonction membre] Erreur de compilation


Sujet :

Langage C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Par défaut [Pointeur de fonction membre] Erreur de compilation
    Bonjour,

    J'ai un petit souci avec le code suivant :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #include <iostream>
     
    using namespace std;
     
    class Bug;
    typedef void (Bug::*Method)(const char*);
     
    #include <iostream>
     
    using namespace std;
     
    class Bug;
    typedef void (Bug::*Method)(const char*);
     
    class Bug
    {
       public:
    //   typedef void (Bug::*Method)(const char*);
     
       Method method;
     
       void echo (const char* str)
       {
          cout << str << endl;
       }
     
       Bug()
       {
          method = &Bug::echo;
          (this->*method)("Constructor");
       }
    };
     
    int main()
    {
       Bug machin;
     
       machin.method = &Bug::echo;
       (machin.*method)("hello world");
       return 0;
    }
    A la compilation, j'ai droit au message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    bug.cxx: In function ‘int main()’:
    bug.cxx:31: erreur: ‘method’ was not declared in this scope
    Pour info, j'ai suivi les indications disponible dans ce cours C/C++.

    Le problème est que je ne vois pas le problème ! Il n'arrive pas à accéder au membre method, comme si celui-ci était privé, mais ce n'est pas le cas, sinon la ligne précédente générerait également une erreur !

    Je suis ouvert à toute suggestion.

    Je vous remercie par avance de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Tu veux appeler la fonction pointée par le membre method de machin, et passant machin comme paramètre this. Il y a donc deux utilisations de machin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       (machin.*(machin.method))("hello world");
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Par défaut
    Merci, c'était exactement ça le problème. Et dire que je ne l'avais pas vu !

    Encore merci pour tout donc

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

Discussions similaires

  1. Pointeur sur fonction membre avec parametre
    Par Glosialabolas dans le forum C++
    Réponses: 7
    Dernier message: 06/02/2006, 02h32
  2. Pointeur de fonction membre.
    Par fabone dans le forum C++
    Réponses: 2
    Dernier message: 18/01/2006, 13h18
  3. Pointeur de fonction membre
    Par legend666 dans le forum C++
    Réponses: 1
    Dernier message: 04/10/2005, 20h46
  4. Réponses: 10
    Dernier message: 03/02/2005, 13h09
  5. Réponses: 5
    Dernier message: 12/01/2005, 20h58

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