Les passages de fonctions en argument
On utilise pour cela des pointeurs sur des fonctions
 

Exemple:
 

#include <iostream>
double f( double x)
{
return exp(x);
}

double g( double x)
{
return cos(x);
}

double compose(double (*a)( double x), double (*b)( double y), double z)

// x et y facultatifs
// attention ne pas oublier les parentheses dans double (*a)()
// sinon au lieu d'un pointeur sur une fonction retournant un double
// ce serait une fonction retournant un pointeur sur un double

{
return a(b(z));
//      pas besoin de * ici

}
int main()
{
double z=0,w;
w=compose(f,g,z);
//  le nom de la fonction donne l'adresse de la fonction (pas de &)
std::cout <<w << "\n";
return 0;
}

Drupal 7 Appliance - Powered by TurnKey Linux