Bonjour à tout le monde
en regardant des discutions récentes et en regardant un tuto sur un autre site j'ai un peu près compris les pointeurs sur fonctions mais moi je souhaite faire des pointeurs sur méthodes. Le tuto est très bien mais j'ai du mal à le mettre moi même en place sur un exemple simple.
je vous ai mis un exemple ci dessous pourriez vous s'il vous plait regarder mon code et me dire mon erreur ?
merci beaucoup
mon bout de code ?
main.cpp
ClassPerso.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 #include <iostream> #include "mathematic.h" #include "ClassPerso.h" using namespace std; int main() { ClassPerso objetPerso; Mathematic mathematic; double (ClassPerso::*functionPointer)(double) = &ClassPerso::maPetiteFonction; double min=-2, max=5; double resultat=mathematic.Algo(min,max,functionPointer); cout << "resultat " << resultat << endl; return 0; }
mathematic.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #ifndef CLASSPERSO_H #define CLASSPERSO_H #include "mathematic.h" class ClassPerso { public: ClassPerso(); ~ClassPerso(); double (*functionPointer)(double); double maPetiteFonction(double); private: }; #endif // CLASSPERSO_H
ClassPerso.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #ifndef MATHEMATIC_H #define MATHEMATIC_H #include "ClassPerso.h" class Mathematic { public: Mathematic(); ~Mathematic(); double Algo(double &,double &,double (ClassPerso::*functionPointer)(double)); private: }; #endif // MATHEMATIC_H
mathematic.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <iostream> #include <math.h> #include "ClassPerso.h" #include "mathematic.h" using namespace std; ClassPerso::ClassPerso(){} ClassPerso::~ClassPerso() {} double ClassPerso::maPetiteFonction(double x) { return x-cos(x)+sin(x); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <iostream> #include <math.h> #include "ClassPerso.h" #include "mathematic.h" using namespace std; Mathematic::Mathematic() {} Mathematic::~Mathematic() {} double Mathematic::Algo(double &min,double &max,double (*ClassPerso::*f)(double)) { double b=f(min)+f(max); return b; }
Partager