CATEGORII DOCUMENTE |
Referirea la datele respectiv functiile membru ale claselor se face cu ajutorul operatorilor . sau -> ca si in cazul referirii la elementele unei structuri. De exemplu daca se declara:
vector v;
vector* p;
atunci afisarea vectorului v respectiv a vectorului referit de pointerul p se face prin:
v.afiseaza();
p->afiseaza();
In interiorul functiilor membru insa referirea la datele respectiv functiile membru ale clasei se face simplu prin numele acestora fara a fi nevoie de operatorul punct ( . ) sau sageata ( -> ). De fapt compilatorul genereaza automat un pointer special, pointerul this, la fiecare apel de functie membru, si foloseste acest pointer pentru identificarea datelor si functiilor membru.
Pointerul this va fi declarat automat ca pointer catre obiectul curent. In cazul exemplului de mai sus pointerul this este adresa vectorului v respectiv adresa referita de pointerul p.
Daca in interiorul corpului functiei membru afiseaza se utilizeaza de exemplu data membru d, atunci ea este interpretata de catre compilator ca si this->d.
Pointerul this poate fi folosit si in mod explicit de catre programator, daca natura problemei necesita acest lucru.
In continuare prezentam un exemplu complet de clasa vector, cu functii membru pentru ridicarea la patrat respectiv afisarea elementelor vectorului, precum si o functie membru pentru adunarea a doi vectori. Fisierul vector3.cpp (contine clasa vector):
#include <iostream.h>
#include <stdlib.h>
class vector
void lapatrat();
vector suma(vector& v1);
void afiseaza();
};
vector::vector(int* e1, int d1)
void vector::lapatrat()
vector vector::suma(vector& v1)
int* x = new int[d];
for(int i = 0; i < d; i++)
x[i] = e[i] + v1.e[i];
vector y(x, d);
delete [] x;
return y;
}
void vector::afiseaza()
Fisierul vector4.cpp (contine functia main):
#include 'vector3.cpp'
int main() ;
vector v(x, 5);
int y[] = ;
vector t(y, 5);
v.suma(t).afiseaza();
return 0;
}
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 787
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved