Cześć,
Mam klasę, gdzie jest kilka metod. Każdy obiekt może wywołać tylko 1 określoną. Do tej pory rozwiązałem ten problem w ten sposób, że stworzyłem sobie drugą funkcję do której podawałem którą funkcję wywołać a ona przy pomocy switcha wybierała odpowiednią i zwracała wynik.
Obecnie pomyślałem, że lepszym (bardziej optymalnym) rozwiązaniem będzie zadeklarowanie wskaźnika do metody - czyli raz przypiszemy w obiekcie wskaźnik do wybranej funkcji i bez switcha będzie wykonywać się wybrana funkcja.
Problem jednak polega na tym, że nie mogę poradzić sobie z wywołaniem tej funkcji...
Ogólnie to wygląda mniej więcej tak:
class klasa
{
public:
double funkcja1(double&);
double funkcja2(double&);
void inna_f(&double);
double (klasa::*wskaznik)(double&);
void set_fun(int type);
}
void klasa::set_fun(int type)
{
switch(type)
{
case 0:
wskaznik = &klasa::funkcja1;
break;
case 1:
wskaznik = &klasa::funkcja2;
}
}
void klasa::inna_f(&double x)
{
double zmienna = *wskaznik(x); //niedziała! próbowałem również: *klasa::wskaznik, *this->*wskaznik i jeszcze pare innych opcji
}
Czy może mi ktoś pomóc i powiedzieć jak wywołać tą metodę przy pomocy wskaźnika?
Będę bardzo wdzięczny!