Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
O functie operator[]() poate fi folosita pentru a defini o operatie de indexare pentru obiecte de tipuri definite de utilizator (clase). Ca si functia operator de asignare, functia operator de indexare nu poate fi decat functie membra nestatica a clasei respective. Argumentul functiei reprezinta al doilea operand al operatiei de indexare si este un indice. Acesta argument poate fi orice tip de date, spre deosebire de indicii in tablouri care nu pot avea decat valori intregi. Primul argument al functiei este obiectul de tip String pentru care se executa operatia de indexare si pointerul la acesta (pointerul this) este transmis implicit functiei operator de asignare care este membra a clasei.
In clasa String se poate adauga functia operator [](int i), care returneaza referinta la caracterul din pozitia i a sirului de caractere str continut de un obiect String
char& String::operator[](int i)
Se poate remarca faptul ca aceasta implementare este cea mai simpla posibila, dar pot apare erori de executie atunci cand se executa indexarea pentru valori ale argumentului care depasesc dimensiunea sirului de caractere. Modul cum se trateaza astfel de erori in C++ este prezentat in sectiunea 8
n Exemplul 4
Fie functia f4()
void f4()
La executia acesteia, la consola se afiseaza urmatoarele rezultate
Constructor init
ABCDEFGH
Destructor
Datorita faptului ca functia operator de indexare returneaza o referinta la un element al sirului, a fost posibila folosirea indexarii atat pentru un membru dreapta cat si pentru un membru stanga al unei expresii.
Politica de confidentialitate |
Copyright © 2024 - Toate drepturile rezervate