Łukasz
C.
Senior Technical
Architect
Temat: wskazniki do metod wirtualnych
Witam,potrzebuje napisac prosta baze do programowania zdarzeniowego, ogolnie potrzebuje mechanizmu ktory umozliwia wiązanie dowolnej instancji jakiejs klasy z dowolna metoda wirtualna z tej lub z innej klasy. Po wyslaniu jakiegos zdarzenia do danej klasy zostanie wykonana odpowiednia metoda (ktora moze nalezec do zupelnie innej klasy).
Problem jest w tym, ze jezeli metoda wirtualna nalezy do tej samej klasy musze ja wykonac w ten sposob: this->*wskaznik() natomiast jezeli nalezy do innej klasy to: sender.*wskaznik()
pytanie czy jest jakis w miare prosty sposob ktory umozliwial by podpiecie dowolnej metody pod dowolny obiekt za pomoca jednej funkcji lub makra?
poki co jedyne co mi przychodzi do glowy to stworzenie czegos w rodzaju uchwytu funkcji wirtualnej ktory skladal by sie z wskaznika do niej oraz wskaznika do obiektu do ktorego ona nalezy :S
ideowy kod:
class Application
{
int main()
{
Button b1, b2;
b1.bind(SOME_EVENT, onAction1);
b2.bind(SOME_EVENT, onAction2);
}
virtual void onAction1(Object& o, Event& e)
{
// jakas akcja
}
virtual void onAction2(Object& o, Event& e)
{
// jakas akcja 2
}
};