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>
/* déclare un type nommé "callbackType" comme étant un pointeur
* de fonction ne prenant aucun argument et ne renvoyant rien
*/
typedef void (*callbackType)();
/* une première fonction ne prenant aucun argument et ne renvoyant rien
*/
void hello()
{
std::cout<<"hello ";
}
/* une autre fonction ne prenant aucun argument et ne renvoyant rien
*/
void world()
{
std::cout<<"world"<<std::endl;
}
void callIt(callbackType cb)
{
(*cb)();
}
int main()
{
/* nous aurions pu joindre les deux instructions suivantes, c'est
* juste fait ici pour bien montrer les étapes successives
*/
callbackType cb1 = NULL;
/*affecte l'adresse de la fonction "hello" à notre pointeur de fonction
*/
cb1 = hello;
/*ce qui serait revenu au même que
*/
callbackType cb2 = world;
/* appelle la fonction
*/
callIt(cb1);
callIt(cb2);
return 0;
} |