Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/09/2008, 08:55
TLXSevilla
 
Fecha de Ingreso: agosto-2006
Mensajes: 16
Antigüedad: 17 años, 8 meses
Puntos: 0
Puntero a funciones en clases

Hola a todos,

Estoy escribiendo una clase llamada GUI para una interfaz de un prototipo de videojuego.

Ya tengo todo bastante pensado, como crear input boxes, botones y demas, pero el problema viene a la hora de querer que cada objeto haga una funcion distinta.

Habia pensado en dar a cada objeto unas funciones con nombre onEnter, onFocus y onClick para que defina que debe hacer el programa cuando estos eventos ocurran (parecido a como lo hace Javascript) y pasar estas funciones como parametro en el constructor a la hora de crear el objeto.

Para que quede claro, ami me gustaria poder definir una funcion en mi programa, y luego pasar un puntero a esa funcion como parametro al constructor de la clase, para que guarde la direccion de memoria de esa funcion en la propia clase, y yo ejecutarla cuando el evento ocurra.

Por poner un ejemplo:
Código:
class MiClase {
public:
void onClick();

MiClase(void (*funcion_de_prueba)()) {
onClick = funcion_de_prueba;
}
}

void funcion() {
cout << "Hola!";
}

MiClase e(funcion);
e.onClick(); // Aqui deberia mostrar "Hola!" en la consola
Es solo un ejemplo pero no se si habrá quedado del todo claro...

Un saludo, espero que puedan ayudarme.