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

Pokazivaci na funkcije

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

[ Pregleda: 2200 | Odgovora: 2 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darkosos
Darko Šoš
Beograd

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

Sajt: www.geocities.com/darkoso..


Profil

icon Pokazivaci na funkcije25.08.2002. u 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() ?
25.08.2002. u 09:33 

Časlav Ilić
Braunšvajg, Nemačka

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



Profil

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

25.08.2002. u 11:41 

darkosos
Darko Šoš
Beograd

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

Sajt: www.geocities.com/darkoso..


Profil

icon Re: Pokazivaci na funkcije25.08.2002. u 22:42
Hvala na odgovoru. Nisam jos isprobao, ali resenje izgleda dobro!
25.08.2002. u 22:42 

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

[ Pregleda: 2200 | Odgovora: 2 ]

Postavi temu Odgovori

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