Résultats de 1 à 6 sur 6

Sujet : pointeur de fonction C++

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    3

    pointeur de fonction C++

    plop,
    j\'ai une fonction de type
    void* nomFonc(void *){
    ...
    }

    je veux la passer en argument d\'une autre fonction mais j\'ai un parse error :
    autreFonc(void* (*nomFonc)(void*));

    ???
    Si vous trouvez ... chapeau
    Merci d\'avance

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    329
    Tu px donner ton code et les erreurs exactes ? Quel compilateur utilises-tu ?

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    3
    code des fonctions concernées :

    void * affichePorteur(void * p){
    //affichage de p
    }

    void ajouteFonction(void* (*pfFonc)(void*)){
    //enregistrement de la fonction dans un tableau
    }

    int main(...){
    ajouteFonction(void* (*affichePorteur)(void*));
    }

    le problème est sur la ligne du main. Le compilo gcc version 2.96 sous red hat 7.2 renvoie une erreur de compile :
    main. cpp:ligne !!:arse error before \'*\'
    main. cpp:ligne \'meme ligne\':arse error before \'*\'

    Merci d\'avance

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    329
    Je n\'ai pas de compilateur sous la main pour vérifier mais il me semble que ton erreur vient de ta fonction principale :

    Code:
    int main(...){
        ajouteFonction(void* (*affichePorteur)(void*));
    }
    Tu redéclares un prototype dans le corps de main. Il me semble que la syntaxe valide est l\'adresse seule de la fonction, type :

    Code:
    int main(...){
        ajouteFonction(&affichePorteur);
    }

  5. #5
    Membre MP
    Inscrit
    août 2013
    Messages
    3
    je viens de trouver :
    ici nous avons la syntaxe d\'un pointeur de méthode or la fonction affichePorteur est justement une fonction et pas une mèthode. La syntaxe d\'un pointeur est différente mais je ne la connait pas. Cependant l\'utilisation de pointeur de fonction est fortement déconseillée. Je vais donc revoir ma façon de faire pour avoir du code plus propre.
    En tous cas merci pour tout
    J\'essairais de passser de temps en temps voir si je peux aider un peu.
    salut

  6. #6
    Membre MP
    Inscrit
    août 2013
    Messages
    329
    Comme tu veux. Petit note quand même : quand tu présentes un problème comme ça, précise quel langage (C ou C++) et quel compilateur tu utilises, ces paramètres varient selon l\'implémentation.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Please disable Adblock!