Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Klasa przechowująca wskaźnik do metod innych klas w jednej zmiennej

Ostatnio zmodyfikowano 2017-03-11 19:21
Autor Wiadomość
fokusx
Temat założony przez niniejszego użytkownika
Klasa przechowująca wskaźnik do metod innych klas w jednej zmiennej
» 2017-03-11 15:52:58
Witam,
zastanawiam się w jaki sposób dowolne klasy z zewnątrz mogłyby przekazać wskaźniki swoich metod aby wywoływały się w klasie FixedUpdate (klasa ta powinna zapamiętać te wskaźniki żeby wywoływać je regularnie) w metodzie void Update().
Bez zapamiętywania mogę zrobić to tak:
C/C++
class ZewnetrznaKlasa1
{
public:
    typedef void( * foo )( void );
    void metodaDoWywolania() { cout << " dziala!"; }
};

class FixedUpdate
{
public:
    void Update( ZewnetrznaKlasa1 * ptr, ZewnetrznaKlasa1::foo doWywolania = NULL )
    {
        ( ptr->* doWywolania )();
    };
   
    int main()
    {
        ZewnetrznaKlasa1 zewnetrznaKlasa1;
        FixedUpdate fixedUpdate;
        fixedUpdate.Update( & zewnetrznaKlasa, & ZewnetrznaKlasa1::metodaDoWywolania );
    }
Z tym że chcę aby klasa FixedUpdate zapamiętała wszystkie przekazane wskaźniki metod np. w vector, jakaś rada?
Dodatkowo wskaźniki do swoich metod mogą podawać różne (nieznane) klasy (ich obiekty).
P-158844
Bielan
» 2017-03-11 16:22:19
Poczytaj sobie o
std::function <>
. Niech klasa ma kolekcję wskaźników i wywołuje je wszystkie za pomocą pętli.
P-158851
fokusx
Temat założony przez niniejszego użytkownika
» 2017-03-11 19:21:03
Dziękuję.
P-158864
« 1 »
  Strona 1 z 1