Estaba tratando de declarar una función de devolución de llamada en clase y luego, en algún lugar que leo, la función debe ser estática pero no explica por qué?¿Por qué las funciones de devolución de llamada deben ser estáticas cuando se declaran en la clase
#include <iostream>
using std::cout;
using std::endl;
class Test
{
public:
Test() {}
void my_func(void (*f)())
{
cout << "In My Function" << endl;
f(); //Invoke callback function
}
static void callback_func()
{cout << "In Callback function" << endl;}
};
int main()
{
Test Obj;
Obj.my_func(Obj.callback_func);
}
su enlace está roto. Además, es mejor publicar respuestas reales en lugar de enlaces. –
@BenH Gracias por el aviso. Respuesta mejorada y enlace fijo. – daramarak
Más uno PARA el enlace (explicaciones muy útiles y fáciles de entender) –