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;
}