[ darkosos @ 25.08.2002. 09:33 ] @
Da li je moguce ( i ako jeste kako ) u okviru klase imati pokazivac koji moze da pokazuje na bilo koju od funkcija klase iste deklaracije ( npr. void f() ) tako da se funkcija-pokazivac moze pozvati preko instance klase, npr. a.pf() ?
[ Časlav Ilić @ 25.08.2002. 11:41 ] @
Pokazivač na član-funkciju može da se pozove samo sa ->* ili .*, tako da, ako je pf pokazivač na član-funkciju, onda poziv a.pf() nije moguć. Ali, umesto toga može da se napravi omotač za pozivanje:

Code:

class test {

private:

void f () { cout << "Funkcija pozvana." << endl; } [blue]// član-funkcija[/blue]
void (test::*pf)(); [blue]// pokazivač na član-funkciju[/blue]

public:

test () : pf(&test::f) {}; [blue]// inicijalizacija pokazivača[/blue]
void pf_wrap () { (this->*pf)(); } [blue]// omotač za pozivanje[/blue]
};

int main () {

test a;

a.pf_wrap();
}

[ darkosos @ 25.08.2002. 22:42 ] @
Hvala na odgovoru. Nisam jos isprobao, ali resenje izgleda dobro!