CATEGORII DOCUMENTE |
Supraincarcarea operatorului de matrice
(de indice sau indexare) "[ ] "
Operatorul [] predefinit se utilizeaza pentru a face acces la elementele unui tablou. De exemplu, daca tab este un tablou unidimensional de un tip predefinit, atunci o expresie de forma:
tab[exp]
permite accesul la elementele tabloului tab de indice exp, exp fiind o expresie care furnizeaza o valoare de tip intreg.
Expresiile de forma de mai sus sunt expresii lvalue (se pot utiliza ca parte stanga intr-o atribuire). De aceea, la supraincarcarea operatorului [] pentru tipuri abstracte, se va utiliza o functie membru nestatica, functie care sa returneze o referinta la elementul selectat pentru functia respectiva.
In aceste conditii, functia pentru supraincarcarea operatorului [] are antetul general:
tip & operator [] (tip_indice i);
tip * operator [] (tip_indice i);
Odata supraincarcat operatorul [] ca mai sus, sunt corecte expresiile de forma:
obiect [expresie]
unde obiect este o instantiere a clasei nume_clasa, iar expresie este o expresie care are tipul tip_indice sau un tip convertibil spre acesta.
Expresia de mai sus are ca rezultat o referinta la elementul definit prin functia care supraincarca operatorul []. Ea este o lvalue si deci se poate utiliza in ambele parti ale unei expresii de atribuire.
class vector
//constructorul de initializare - dezvoltare
vector::vector(int x)
//supraincarcarea operatorului de indexare - dezvoltare
int& vector::operator[](int x)
//supraincarcarea operatorului de afisare - dezvoltare
istream& operator>>(istream& in,vector& a)
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1790
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved