Video: C Tutorial Problema 1 2024
Tipurile de date intrinseci sunt construite în limbajul C ++, cum ar fi int , float <, și duble și diferitele tipuri de indicatori. C ++ permite programatorului să definească operatorii pentru clasele pe care le-a creat programatorul în plus față de acești operatori intrinseci. Aceasta se numește supraîncărcare a operatorului . În mod normal, supraîncărcarea operatorului este opțională și nu este încercată de începătorii programatorilor C ++. O mulțime de programatori C ++ cu experiență nu cred că supraîncărcarea operatorului este o idee atât de bună. Cu toate acestea, va trebui să înveți cum să supraîncărcați un operator: operatorul de atribuire.
Operatorul nu este decât o funcție încorporată cu o sintaxă specială. Următoarea operație de adunare
a + bar putea fi înțeleasă ca și cum ar fi scris
operator + (a, b)
De fapt, C ++ dă fiecărui operator un nume de stil de funcționare. Numele funcțional al unui operator este simbolul operatorului precedat de operatorul de cuvinte cheie și urmat de tipurile de argument corespunzătoare. De exemplu, operatorul
+
care adaugă un int la un int care generează un int este numit int operator + (int, int).
Noul operator poate avea aceleași semantici ca și operatorul pe care îl supraîncarcă, dar nu este necesar. Următoarele reguli se aplică atunci când supraîncărcați operatorii: Programatorul nu poate supraîncărca .
-
(punct), :: (colon), . *, * ->, dimensiunea și ?: operatori (ternari).
-
Sintaxa unui operator nu poate fi schimbată. Astfel, nu puteți defini o operație% i deoarece% este deja definită ca operator binar. Prioritatea operatorului nu se poate schimba. Un program nu poate forța operatorul + să fie evaluat înainte de operatorul *
-
Operatorii nu pot fi redefiniți când sunt aplicați tipurilor intrinseci - nu puteți schimba semnificația lui 1 + 2. Operatorii existenți pot fi supraîncărcați numai pentru tipurile nou definite. Operatorii de supraîncărcare sunt unul dintre acele lucruri care par a fi o idee mult mai bună decât este într-adevăr. De obicei, supraîncărcarea operatorului introduce mai multe probleme decât rezolvă.