Tablica wskaźników na metody klasy
Ostatnio zmodyfikowano 2010-06-21 20:27
kamillo121 Temat założony przez niniejszego użytkownika |
Tablica wskaźników na metody klasy » 2010-06-21 19:42:42 Witam, otóż mam taki problemik malutki. Jak trzeba mi np tablice wskaźników do funkcji to robię to tak typedef void( * MF )();
MF mf[] = { & fun, & fun1, & fun2 };
( mf[ 0 ] )();
i tak wszystko działa, gorzej jak chce zastosować to dla klas, tzn mam klasę i w niej parę metod, i w jednej z metod właśnie chce przeprowadzić przypisanie tak jak wyżej czyli MF mf[] = {...}; ( mf[ 0 ] )();
ale nie działa, pluje [..] Say &KLASA::metoda(); [..] ... [..] ... jak zmienię na taki zapis przy przypisywaniu : typedef void( KLASA::* MF )();
MF mf[] = { & KLASA::fun };
to wtedy przy odwołaniu (mf[0])(); must use .* or ->* to call pointer-to-member function in mf[0] (...)
Pomoże ktoś ? :) |
|
DejaVu |
» 2010-06-21 20:10:01 #include <iostream> using namespace std; class Ui { public: typedef void( Ui::* memberFunction )(); int menuInput( memberFunction mf ); void showMainMenu() { cout << "showMainMenu" << endl; } }; int main() { Ui ui; Ui::memberFunction mf =( Ui::memberFunction )( & Ui::showMainMenu ); int menuItem = ui.menuInput( mf ); }
int Ui::menuInput( memberFunction mf ) { int bleble = 155; ( this->* mf )(); return bleble; }
Źródło: http://forum.idg.pl/wskaznik-metode-t54610.html |
|
kamillo121 Temat założony przez niniejszego użytkownika |
» 2010-06-21 20:16:08 Już chyba wiem ,bo ja chce mieć tą tablicę wskaźników na metody w jednej z metod tej klasy a błąd wynikał chyba z tego, że te metody nie były statyczne
Dzięki :) |
|
DejaVu |
» 2010-06-21 20:23:47 Metoda statycza to de'facto funkcja, więc to nie to samo co posiadanie wskaźnika na metodę. |
|
kamillo121 Temat założony przez niniejszego użytkownika |
» 2010-06-21 20:27:42 No czytam ten zapis co Pan podał no i powoli dochodzę do błędów jakie popełniłem ale w takim razie to nie wszystkie xD no Dzięki teraz to mam nadzieję rozgryzę :) dosyć ciekawy problem więc warto posiedzieć nad tym |
|
« 1 » |