Pointeurs sur fonctions

Contenu du snippet

Ceci est un code (totalement brute et inutile) qui montre comment pointer des fonctions. Ca permet entre autre chose de passer des fonctions en paramètre.
J'ai trouvé cette source (et non, malheureusement, elle n'est pas de moi) sur le site d'un IUT.
L'URL: http://www.iut-bethune.univ-artois.fr/~caron/courscpp/courscpp.html
Vous trouverez dessus de nombreux cours C++ avec de tres petits exemples mais clairs...

Source / Exemple :


#include <iostream.h>

int f1(char a) { cout << "f1:" << a << endl ; return 1 ;  }
int f2(char a) { cout << "f2:" << a << endl ; return 2 ; }
int f3(char a) { cout << "f3:" << a << endl ; return 3 ; }

void fonction(int (*fct)(char), char a)
{
  fct(a);
}

int (*ptr_f) (char) ;

int main(void) {
  ptr_f = f1 ;
  int i ;

  i=(*ptr_f) ('b') ; // affiche f1:b
  cout << i << endl ;   // affiche 1
  
  ptr_f = f2;  // pointe f2
  fonction(ptr_f, 'c'); // le premier parametre est un pointeur (passage de fonction en parametre)

  return 0 ;
}

Conclusion :


J'ai rajouté à la demande un exemple de passage de fonction en paramètre.
J'espère ne pas avoir fait trop compliqué.(je ne pense pas)

Voilà, aller, je vais m'en servir...

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.