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

Wskaźniki na metody

Ostatnio zmodyfikowano 2014-08-21 21:58
Autor Wiadomość
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.
P-115875
akwes
» 2014-08-21 19:02:45
std::function?
P-115877
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?
C/C++
void akcja( std::function a )
{
    a();
}
Jak? czytam dokumentacje i nic nie rozumiem.
P-115881
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);
}

P-115882
1aam2am1
Temat założony przez niniejszego użytkownika
» 2014-08-21 19:33:47
C/C++
#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
P-115883
Monika90
» 2014-08-21 20:06:00
Możesz mieć std::vector<std::function<void ()>>
P-115887
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.
P-115895
pekfos
» 2014-08-21 20:23:11
Nie mogę mieć std::vector<std::function<void ()>> nie przypiszę pod to metody.
Dlaczego?
P-115896
« 1 » 2
  Strona 1 z 2 Następna strona