Bonjour, j'ai un souci sur mes pointeurs de fonction membre. Voici mon code en simplifié :

fichier : MaClasse.h
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
 
class MaClasse;
 
typedef bool (MaClasse::*evalGradF)(int x1,int x2,int x3,int x4);
 
class MaClasse
{
public :
 
  MaClasse(int x);
  ~MaClasse() {}
 
  bool f1(int x1,int x2,int x3,int x4);
  bool f2(int x1,int x2,int x3,int x4);
  bool f(int x1,int x2,int x3,int x4);
 
 
private :
   evalGradF _evalGradF;
};
fichier MaClasse.cpp

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
 
MaClasse::MaClasse(int x)
{
  _evalGradF = (x < 2) ? &MaClasse::f1 : &MaClasse::f2;
}
 
bool MaClasse::f(int x1,int x2,int x3,int x4)
{
  return _evalGradF(x1,x2,x3,x4);
}
 
bool MaClasse::f1(int x1,int x2,int x3,int x4)
{
  return ( (x1 < 1) && (x2 < 2) && (x3 < 3) && (x4 < 4) );
}
 
bool MaClasse::f2(int x1,int x2,int x3,int x4)
{
  return ( (x1 < 1) || (x2 < 2) || (x3 < 3) || (x4 < 4) );
}
et là, au niveau de la fonction f(), j'ai l'erreur à la compilation :

error C2064: term does not evaluate to a function taking 4 arguments
Avez-vous une idée ?

Merci d'avance