Wskaźniki na metody
Ostatnio zmodyfikowano 2014-08-21 21:58
1aam2am1 Temat założony przez niniejszego użytkownika |
Wskaźniki na metody » 2014-08-21 18:37:23 Czy jest jakaś możliwość przekazania do funkcji wskaźnika na metodę obojętnie jakiej klasy. |
|
akwes |
» 2014-08-21 19:02:45 std::function?
|
|
1aam2am1 Temat założony przez niniejszego użytkownika |
» 2014-08-21 19:17:00 A mógłby mi ktoś pokazać jak przekazać za pomocą tego metodę do funkcji jako argument? void akcja( std::function a ) { a(); }
Jak? czytam dokumentacje i nic nie rozumiem. |
|
Monika90 |
» 2014-08-21 19:23:17 class X { public: void f(int i) { std::cout << i << '\n'; } };
void wykonaj(std::function<void (X*, int)> fun) { X x; fun(&x, 666); }
int main() { wykonaj(&X::f); }
|
|
1aam2am1 Temat założony przez niniejszego użytkownika |
» 2014-08-21 19:33:47 #include <iostream> #include <functional>
class X { public: void f() { std::cout << 0 << '\n'; } };
class Y { public: void f() { std::cout << 123 << '\n'; } };
template < typename F > void wykonaj( F & x, std::function < void( F * ) > fun ) { fun( & x ); }
int main() { X x; wykonaj < X >( x, & X::f ); }
Dobra a czy istnieje możliwość dodania (wykonaj) funkcji do jakiegoś konteneru? np std::list |
|
Monika90 |
» 2014-08-21 20:06:00 Możesz mieć std::vector<std::function<void ()>> |
|
1aam2am1 Temat założony przez niniejszego użytkownika |
» 2014-08-21 20:22:17 Nie mogę mieć std::vector<std::function<void ()>> nie przypiszę pod to metody. |
|
pekfos |
» 2014-08-21 20:23:11 Nie mogę mieć std::vector<std::function<void ()>> nie przypiszę pod to metody. |
Dlaczego? |
|
« 1 » 2 |