Tengo 2 objetos:
ClaseA
ClaseB
ClaseA tiene una referencia a ClaseB en su cuerpo, pero ClaseB no debe tener referencia a ClaseA
Código
//ClaseA class ClaseA { private: ClaseB* b {nullptr}; public: void Alpha(); }; //ClaseB class ClaseB { public: void Beta(); };
Lo que busco hacer es llamar desde ClaseA::Alpha() a ClaseB::Beta(), luego ClaseB::Beta() debe invocar a ClaseA::Alpha() de vuelta.
Código
//ClaseA fuente void ClaseA::Alpha(){ //hacer algo b->Beta(); //invoco a ClaseB::Beta() } //ClaseB fuente void ClaseB::Beta(){ //el hilo proveniente de ClaseA::Alpha pasa por aqui... //hacer algo //invocar de vuelta a ClaseA::Alpha() desde un principio... }
Pienso que puedo colocar algun parametro en ClaseB::Beta(), por ejemplo:
ClaseB::Beta(algun tipo o puntero a funcion miembro que apunte a la funcion anterior)
Entonces la invocacion seria:
Código
b->Beta(&ClaseA::Alpha);
...cosa que al terminar Beta, ya sabe que funcion tiene que invocar despues, en este caso ClaseA::Alpha
Como se puede lograr esto?
gracias de antemano.