wskaznik do funkcji przekazywany w parametrze innej funkcji
Ostatnio zmodyfikowano 2012-07-16 18:28
Savail Temat założony przez niniejszego użytkownika |
wskaznik do funkcji przekazywany w parametrze innej funkcji » 2012-07-16 18:07:48 Hej, Próbowałem zrobić to w ten sposób ale coś mi tu nie wychodzi. A więc mam 2 klasy: class windows { public: windows( void * Events( CEGUI::Window * handle ) ); void( * Events )( CEGUI::Window * handle ); };
class Gui { public: static Gui & Obj() { static Gui Singleton; return Singleton; } void EvWindow( CEGUI::Window * handle ); }; i konstruktor klasy windows: windows::windows( void * Events( CEGUI::Window * handle ) ) { this->Events = Events; } I teraz gdy tworzę obiekt klasy windows chciałbym aby wskaźnik Events tego obiektu zaczął wskazywać na funkcję w konstruktorze. Próbowałem w ten sposób windows Parent( & Gui::EvWindow ); ale właśnie w tym miejscu wyskakuje błąd: 1>app.cpp(96): error C2664: 'windows::windows(void *(__cdecl *)(CEGUI::Window *))' : cannot convert parameter 1 from 'void (__thiscall Gui::* )(CEGUI::Window *)' to 'void *(__cdecl *)(CEGUI::Window *)'
Byłbym wdzięczny za wskazanie błędów lub sugestie jakiegoś lepszego rozwiązania. |
|
DejaVu |
» 2012-07-16 18:17:23 __interface IWindow { void metoda(); };
class CButton : public IWindow { void metoda() { printf( "button\n" ); } }
class CWindows { std::vector < IWindow *> m_vWindows; void wywolajMetode() { BOOST_FOREACH( IWindow * pWnd, m_vWindows ) if( pWnd ) pWnd->metoda(); } };
/edit:
Druga opcja: delegaty.
http://warsztat.gd/wiki/Biblioteka+FastDelegate |
|
Savail Temat założony przez niniejszego użytkownika |
» 2012-07-16 18:28:48 heh, dzięki wielkie, ta biblioteka fastdelegate odziwo, nawet na wstępie mówi o identycznym problemie nad którym teraz pracuje. Wydaje się być tym czego szukałem ;d |
|
« 1 » |