Utilisation d'une fonction d'une fonction membre d'une classe
Bonjour,
J'aimerais utiliser une fonction ayant comme argument une fonction membre d'une classe.
Vous pouvez trouver un exemple tres simple de ce que je veux faire a la fin du message.
J'arrive a faire fonctionner mon code si je passe comme argument de fonction, une fonction non-membre de ma classe.
Je pense que je dois rater quelque chose et je serais tres heureux si quelqu'un pouvait m'aider.
Merci
Code:
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
| #include <iostream>
class SimpleClass {
float x0_;
public :
SimpleClass();
virtual ~SimpleClass(){};
float f(float x){return x+x0_;};
float F(float (*func)(float), float a, float b);
};
float g(float x){return x+1;};
SimpleClass::SimpleClass() : x0_(1) {
float (*func) (float);
//func = f;// ne compile pas
func = g; // compile et fonctionne correctement
std::cout<<F(func,2,4)<<"\n";
}
float SimpleClass::F(float (*func)(float), float a, float b){
return (*func)(a)+(*func)(b);
}
int main (){
SimpleClass ab;
return 0;
} |