vi suggerisco di utilizzare funtore (o oggetto funzione), piuttosto che puntatore a funzione, perché il primo è più sicuro, e puntatore a funzione può essere difficile o imbarazzante di passare uno stato dentro o fuori la funzione di callback
A funtore è fondamentalmente un re-implementazione dell'operatore() della classe a, per la descrizione molto dettagliata prega di fare riferimento a Wikipedia: http://en.wikipedia.org/wiki/Function_object
Il codice dovrebbe essere qualcosa di simile:
class A {
public:
A() {};
void operator()(int function_index, int parameter) {
if(function_index == 1)
func1(parameter);
else if(function_index == 2)
func2(parameter);
else
{ //do your other handling operation
}
}
private:
void func1(int) {};
void func2(int) {};
};
utilizzando quella classe:
A a;
a(1, 123); //calling func1
a(2, 321); //calling func2
A seconda dell'obiettivo, l'ereditarietà virtuale o un modello potrebbe essere più appropriato, FWIW. – Cogwheel