Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Pointeri la Metode

c


Pointeri la Metode

O metoda a unei clase poate fi referita (apelata) si printr-un pointer la ea.



Definirea unui pointer la o metoda se poate face astfel:

Tip_functie (Nume_clasa *Nume_Pointer Lista_par_formali // sau cu typedef

Initializarea unui pointer la o metoda se poate realiza astfel:

Nume_Pointer & Nume_clasa Nume_Metoda // se pot realiza si la definire

Referirea unui pointer la o metoda (apelarea metodei)

(Nume_Obiect . *Nume_Pointer Lista_par_actuali .

De exemplu, pentru programul anterior, modificarile necesare pentru a putea apela cele doua metode Muta si Trag ale clase Punct pot fi urmatoarele:

Pointeri la metode

class Punct

void Atrib .

Punct (Punct& P)

void Muta ()

void Trag ()

~Punct ()

static Punct St_Sus, Dr_Jos;

static float MinX() // Metoda Statica

.

};

void main (void)

// Initializare

// sau:

void (Punct :: *Pm[2] // Def+Ini

(P[0].*Pm[0])(); setcolor(WHITE); // Apel Muta

for (i=1; i<=n; i++) (P[i].*Pm[1] // Apel Trag

Un alt exemplu, care utilizeaza pointeri la metode (Triun, Drept si Romb) este urmatorul:

Pointeri la *Metode

# include <math.h>

# include <conio.h>

# include <graphics.h>

# define Cale 'c:BorlandCBgi'

class Grafic

~Grafic( ) };

int u (float);

int v (float);

class Punct

void Atrib (float x,float y)

Punct (Punct& P)

void Muta ()

void Triun ()

void Drept ()

void Romb ()

~Punct ()

static Punct St_Sus, Dr_Jos; // Fereastra Reala

static float MinX()

static float MaxX()

static float MinY()

static float MaxY()

};

Punct Punct::St_Sus, Punct::Dr_Jos;    // Fereastra Reala

int u1=110, v1=20, u2=500, v2=430; // Fereastra Ecran

int u (float x)

int v (float y)

float x0 (float t) // x(t)

float y0 (float t) // y(t)

float x1 (float t) // x(t)

float y1 (float t) // y(t)

float x2 (float t) // x(t)

float y2 (float t) // y(t)

void main (void)

,y[3]=;

for (j=0; j<=2; j++) P[j][0].Atrib((*x[j])(0),(*y[j])(0));

Punct::St_Sus=Punct::Dr_Jos=P[0][0];

for (j=0; j<=2; j++) for (i=0; i<=n; i++)

void (Punct::*Desen[3])()=;

for (j=0; j<=2; j++) for (i=0; i<=n; i++) (P[j][i].*Desen[j])();

// Mummers Dance



Document Info


Accesari: 965
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )