elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con "Eventos" [C++]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con "Eventos" [C++]  (Leído 1,228 veces)
sangano

Desconectado Desconectado

Mensajes: 47



Ver Perfil
Problema con "Eventos" [C++]
« en: 14 Septiembre 2013, 23:20 pm »

Hola a todos, estoy tratando de crear una clase Event para capturar acciones en el objeto. Actualmente tengo una clase Event, classA y claseB.

Event es asi:
Código
  1. template<class T>
  2. class Event
  3. {
  4.    public:
  5.        typedef void (T::*emptyHandler)();    
  6.  
  7.        Event(T* caller, emptyHandler handler) : instance(caller), emptyHndl(handler)    { }
  8.  
  9.  
  10.        virtual void operator()()
  11.        {
  12.            (instance->*emptyHndl)();
  13.        }
  14.  
  15.        void callbackRegister( emptyHandler hndl) {
  16.            emptyHndl = hndl;
  17.        }
  18.  
  19.    protected:
  20.        T *instance;
  21.        emptyHandler emptyHndl;
  22.  
  23. };
  24.  

La clase classA contiene un Event y lo declaro de esta manera:
Código
  1. Event<classA> *SelectEvent

classB hereda de classA, classB contiene un vector con objetos del tipo classA y cada vez que se agrega una al vector la idea es agregarle un metodo de la classB como handler, asi:

Código
  1. SelectEvent = new Event<classB>(this, &classB::emptyFunction);


Aqui el problema, al ya tener un tipo cuando es declarada no me deja pasarle el metodo por que no es del mismo tipo.

Habra alguna otra forma de poder pasarle el metodo que quiero o alguna forma de solucionar el problema.

Desde ya muchas gracias!



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines