RE:Eventos en C++ no en VC++
¿Y quién se encarga de detectar la pulsación de la tecla? Quiero decir, eso se parece en realidad a la programación en Windows, pero construyendola tú.
Imagina que tienes una clase:
class A {
void teclaPulsada(int tecla);
}
Es decir, un objeto de la clase A tiene una función a la que quieres llamar cada vez que se pulse una tecla.
Si estás en C++ directamente, tendrás un main, que deberá comprobar contínuamente si se ha pulsado una tecla, y si es asi, llamar a la función:
int main() {
A *a = new A;
while (true) {
if (kbhit())
a->teclaPulsada(getch());
}
return 0;
}
Digamos que así es como funciona en realidad Windows; la aplicación tiene un bucle que espera 'eventos del usuario' (en este caso solo la pulsación de una tecla, pero podría ser mover la ventana, etc...), y cada vez que eso sucede, se ejecuta la función que lo procesa.
Ahora bien, lo que he puesto es la forma "fácil", pues el objeto a está creado en el main, y se conoce. Si quieres poder tener varios objetos a los que llamar, deberás tener una lista, y recorrerla cada vez. Es lo que se llama patrón Observer (Listener en Java).
Sería algo así: tienes una clase "GestorTeclado", global, a la que llama el 'main' cada vez que se pulsa una tecla.
Esa clase, tiene una lista de punteros a objetos de la clase A, y tiene métodos para poder añadir y eliminar objetos de esa lista. Cuando se pulsa una tecla, se recorre la lista, y se llama a todos los objetos.
La idea:
c