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 fonction renvoyant un pointeur sur fonction


Sujet :

C++

  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut Pointeur sur fonction renvoyant un pointeur sur fonction
    Bonjour
    Peut on voir ceci comme un pointeur sur fonction prenant un int et renvoyant un pointeur sur fonction prenant un int et renvoyant un int ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int (*(*foo(int)))(int);
    merci

  2. #2
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Vous avez 4H.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  3. #3
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    Non, moins (j'espère avoir une réponse avant lol).

  4. #4
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    réponse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     int (*(*ff)(int))(int);

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 401
    Par défaut
    C'est là qu'on voit l'utilité des typedefs...

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    typedef int (*INTPROC)(int);
    typedef INTPROC (*INTPROCPROC)(int);
    INTPROCPROC foo;
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    auto de C++0x

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Ba si je me trompe pas dans ton premier poste, c'est une déclaration d'une fonction qui prend un int en argument et retourne un pointeur de pointeur d'une fonction qui prend un int en argument et retourne un int.

    Mais on est tous d'accord que l’intérêt de ce genre de truc est très limité.

  8. #8
    Membre très actif Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Par défaut
    3DArchi sale tricheur
    Je sens que ce petit mot clé va faire des ravages sur les petits nouveaux qui n'aiment pas la rigueur, ça va être simple pour débugger ce genre de mélasse maintenant ><

  9. #9
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par oxyde356 Voir le message
    3DArchi sale tricheur


    Je pense surtout qu'à la base la question ne relève pas d'un cas terrain. Ou alors d'un mauvais design puisqu'à la place d'un pointeur de fonction, on ferait mieux dès le départ de travailler soit en générique avec un 'callable' soit avec un std::function. Peut être qu'en C la question pourrait se poser.

  10. #10
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Personnellement, je ne juge pas la qualité d'un programmeur en C++ avec de telles horreurs...
    +1 pour auto et boost::function !

  11. #11
    Membre Expert

    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 : 35
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int (*(*foo(int)))(int);
    => Fonction prenant en paramètre un entier retournant un pointeur de pointeur de fonction qui prend en parmamêtre un entier et retourne un entier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int (*(*ff)(int))(int);
    => Pointeur de fonction prenant en paramètre un entier retournant un pointeur de fonction prenant en paramètre un entier retournant un entier

    Prends une feuille et un crayon et fait le morceaux par morceaux, on finit pas y arriver ... mais quel est l'interet ?

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/10/2009, 19h16
  2. Réponses: 4
    Dernier message: 23/06/2009, 17h52
  3. pointeur sur une fonction renvoyant un double
    Par nevertheless dans le forum C
    Réponses: 4
    Dernier message: 26/01/2008, 17h22
  4. Réponses: 5
    Dernier message: 29/06/2006, 18h23
  5. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 20h37

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