pointeur de fonction membre
Bonjour, j'ai un souci sur mes pointeurs de fonction membre. Voici mon code en simplifié :
fichier : MaClasse.h
Code:
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:
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 :
Citation:
error C2064: term does not evaluate to a function taking 4 arguments
Avez-vous une idée ?
Merci d'avance