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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
}