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 apel functie


Supraincarcarea operatorului de apel functie


Supraincarcarea operatorului de apel functie

Operatorul de apel al unei functii poate fi considerat o expresie binara de forma

nume_functie(lista_argumente)

unde lista_argumente introduce argumentele efective de apel ale functiei cu numele nume functie. In aceasta expresie binara operandul stanga este numele functiei, iar operandul dreapta este lista de argumente de apel. Operatorul poate fi supraincarcat pentru o clasa data folosind o functie membra nestatica a clasei printr-o constructie de forma:

tip_returnat operator() (lista_argumente);

Lista de argumente este evaluata si utilizata dupa regulile obisnuite de transfer ale argumentelor. Functia operator de apel poate fi supraincarcata pentru orice clasa, dar ea este utila in special pentru acele clase care au fie o singura functie, fie una dintre functiile membre este predominanta ca utilizare.

De exemplu, supraincarcarea functiei operator de apel pentru clasa Point, poate arata astfel

class Point

Pentru functia operator()() s-a ales o operatie de atribuire a unor valori datelor membre ale clasei si utilizarea ei intr-o functie oarecare f6() poate arata astfel

void f6()

Supraincarcarea operatorului de apel este frecvent utilizata in definirea iteratorilor, care permit parcurgerea in ordinea dorita a elementelor unei colectii, fara ca aceasta ordine sa depinda de modul de ordonare interna a elementelor colectiei. Un astfel de exemplu este dat in sectiunea 8. De asemenea, functia operator () () mai este utilizata in operatii cu subsiruri si ca operator de indexare in tablourile multidimensionale.




loading...




Politica de confidentialitate


loading...




Politica de confidentialitate

Copyright © 2020 - Toate drepturile rezervate