Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

C


Index » educatie » » informatica » C
» Supraincarcarea operatorului de indexare


Supraincarcarea operatorului de indexare


Supraincarcarea operatorului de indexare

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