Ciao ragazzi,
premetto che il mio quesito e` abbastanza intricato da esprimere, conto sulla vostra ottima capacita` di comprensione....
Stavo studiando un po` di C++ e mi stavo chiedevo come ( e se) e` possibile creare una funzione che riceva come argomento un puntatore a funzione "membro" di una classe. (':master:')
Io ho fatto un piccolo esempio in C dove la funzione PassPointer() riceve come argomento un puntatore a funzione globale.
Ovviamente il programma NON ha nessuna utilita` se non lo scopo didattico....
codice:
#include <iostream>
using namespace std;
// funzione globale
float Add (float a, float b) { return a+b; }
//Classe C++
class MyClass
{
public:
float DoAdd(float a, float b) { return a+b; };
};
/*ecco la funzione che riceve come argomeno il puntatore a funzione... */
void PassPointer( float (*ptrFunct)(float, float) )
{
float result = ptrFunct(12,21);
cout << result << endl;
};
void PassFunctionPointer(void)
{
PassPointer(&Add);
}
void main()
{
PassFunctionPointer();
}
Con la funzione globale, non ci sono problemi, ma volendo passare la funzione membro MyClasss:: DoAdd() come devo trasformare la mia funzione PassPointer() ? ('')
A voi l`ardua sentenza.
Ciao ed a presto...
Sergio