Estoy intentando agregar un sistema de mensajería simple a mi proyecto, donde los eventos pueden ser invocados por una función, lo que dará lugar a que se llamen todas las devoluciones de llamada a ese evento.C++: Funciones de miembro de clase como devoluciones de llamada de evento
Ahora, la forma lógica de hacerlo es usar punteros a funciones. Sería posible pasar fácilmente el puntero a la función de devolución de llamada deseada al administrador de eventos, para registrarse. Una función de devolución de llamada de evento siempre devolvería un int
y tomaría un void*
como argumento.
Sin embargo, no quiero registrar funciones globales estáticas como mis devoluciones de llamada de eventos. Me gustaría hacerlo con funciones de miembro de clase.
¿Es posible lograr esto con C++? Almacenar y llamar punteros a funciones miembro de diferentes clases pero con el mismo encabezado de función .
Si esto no es posible, ¿tiene alguna sugerencia sobre cómo podría solucionar este problema? Realmente me gustaría agregar oyentes de eventos directamente a mis clases.
Haga un esfuerzo para evitar el vacío *. Por lo general no es necesario en C++ y abre la posibilidad de errores extraños en sistemas más complejos: fuerza la coherencia entre el emisor y el receptor sin la ayuda del compilador. – stefaanv