Bonjour, j'ai un souci sur mes pointeurs de fonction membre. Voici mon code en simplifié :
fichier : MaClasse.h
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 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; };
et là, au niveau de la fonction f(), j'ai l'erreur à la compilation :
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) ); }
Avez-vous une idée ?error C2064: term does not evaluate to a function taking 4 arguments
Merci d'avance
Partager