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