Buongiorno a tutti.
Ho un problema con il passaggio di un puntatore ad una funzione come parametro.
Ho una classe dove un metodo accetta come parametro un puntatore ad una funzione di un certo tipo, esattamente ritornante void con un solo parametro di tipo uinti8_t
void Classe1::FunzioneA(void (*puntatore)(uint8_t))
{
// codice qui...
}
Ora, se passo alla classe il parametro liscio come indicato nell'esempio sotto, non ho alcun problema
void foo(uint8_t parametro)
{
// codice qui...
}
miaClasse = Classe1();
miaClasse.FunzioneA(foo);
Se invece tento di passare come paramentro alla stessa classe un puntatore ad una funzione contenuta in un altra classe di cui pongo un esempio sotto , mi genera un errore in fase di compilazione:
Classe2::foo(uint8_t parametro)
{
// codice qui...
}
Classe2::FunzioneB()
{
miaClasse1.FunzioneA(foo);
//errore 'Classe1::FunzioneA(<unresolved overloaded function type>)'
}
Ho fatto varie prove, ma non mi piace andare a tastoni, vorrei capire cosa non và.
Sò che può sembrare contorta la mia spiegazione, e mi rendo conto che probabilmente solo io che sto 'sul pezzo' posso capire cosa ho scritto, ma è la forma che mi sembrava più chiara da spiegare.
In tutti i casi posso fornire spiegazioni mirate.
Grazie a tutti in anticipo.