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 Pointeur de fonction


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 50
    Points
    50
    Par défaut Problème Pointeur de fonction
    Bonjour,

    Je veux utiliser un pointeur de fonction. Voila le code exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class MaClasse
    {
        int maFct(int) const;
     
        typedef int MaClasse::*maFctPtr(int) const;
     
        void maFctTest(maFctPtr p);
    };
    Mon message d'erreur : 'const' and 'volatile' function specifiers on 'p' invalid in parameter declaration.

    Ce qui le gêne apparemment, c'est le 'const' de mon typedef, lorsqu'il est utilisé dans maFctTest.

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Citation Envoyé par olivier21c Voir le message
    Bonjour,

    Je veux utiliser un pointeur de fonction.
    Pour en faire quoi ? C'est souvent inutile.

    Citation Envoyé par olivier21c Voir le message
    Voila le code exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class MaClasse
    {
        int maFct(int) const;
     
        typedef int MaClasse::*maFctPtr(int) const;
     
        void maFctTest(maFctPtr p);
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typedef int(MaClasse::*maFctPtr)(int)const;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 50
    Points
    50
    Par défaut
    Effectivement, comme cela ça fonctionne, merci

    Les pointeurs de fonctions, souvent inutiles, mais ici nécessaires ^^

  4. #4
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Disons toujours inutiles alors, on a la déduction des paramètres template et std::function qui les remplacent (en faite ils les masquent). Par exemple ton exemple sans pointeurs de fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    struct A
    {
        int foo(int) const
        { return 0; }
     
        template<class F>
        void test(F&& f)
        { func = std::forward<F>(f); }
     
    private:
        std::function<int(const A&,int)> func;
    };

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Donc ça y est, maintenant la règle est de supposer C++11 jusqu'à affirmation contraire?
    Cool. Si seulement le dernier obstacle à faire la même chose en C pouvait disparaître...

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 629
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,
    Citation Envoyé par Médinoc Voir le message
    Donc ça y est, maintenant la règle est de supposer C++11 jusqu'à affirmation contraire?
    Cool. Si seulement le dernier obstacle à faire la même chose en C pouvait disparaître...
    Ben, en réalité, je me dis que si ca peut inciter à jeter leurs CV++6 et autres dinosaures pour passer à C++11, ce sera déjà cela de gagné

    Par contre, Flob va peut être un tout petit peu vite en affaire en estimant que tout le monde compile forcément en C++11... Tant que ce ne sera pas le réglage par défaut des compilateurs, il devrait au moins mentionner systématiquement ce fait

  7. #7
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Je me pose plus la question maintenant, quand je poste du code je tendance à le faire en C++14 + boost, j'avise ensuite selon la réponse de l'OP.

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

Discussions similaires

  1. Problème pointeurs et fonctions
    Par crimetime dans le forum Débuter
    Réponses: 10
    Dernier message: 25/06/2010, 13h40
  2. Réponses: 4
    Dernier message: 10/12/2009, 00h45
  3. Problème pointeur sur fonction static
    Par Julien_C++ dans le forum C++/CLI
    Réponses: 5
    Dernier message: 11/01/2008, 19h26
  4. Problème: pointeur de fonction à partir d'un namespace
    Par akileaQuébec dans le forum C++
    Réponses: 8
    Dernier message: 09/10/2007, 10h37
  5. Problème pointeur de fonction
    Par ired dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/06/2007, 13h24

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