Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pokazivaci na funkcije

[es] :: C/C++ programiranje :: Pokazivaci na funkcije

[ Pregleda: 5431 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
*.ptt.yu



+64 Profil

icon Pokazivaci na funkcije25.08.2002. u 09:33 - pre 263 meseci
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() ?
 
Odgovor na temu

Časlav Ilić
Braunšvajg, Nemačka

Član broj: 4945
Poruke: 565
*.beg.sezampro.yu



+27 Profil

icon Re: Pokazivaci na funkcije25.08.2002. u 11:41 - pre 263 meseci
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();
}

 
Odgovor na temu

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
*.ptt.yu



+64 Profil

icon Re: Pokazivaci na funkcije25.08.2002. u 22:42 - pre 263 meseci
Hvala na odgovoru. Nisam jos isprobao, ali resenje izgleda dobro!
 
Odgovor na temu

[es] :: C/C++ programiranje :: Pokazivaci na funkcije

[ Pregleda: 5431 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.