Informatică Programare

Ce este supraincarcarea operatorilor C++?

Supraîncărcarea operatorilor în C++ permite redefinirea semnificației operatorilor (ca +, -, *, etc.) pentru tipuri de date definite de utilizator, cum ar fi clase. Aceasta îmbunătățește lizibilitatea codului, permițând utilizarea operatorilor în mod natural pe obiecte. Se realizează prin funcții speciale numite operator functions.

Cum funcționează supraîncărcarea

  • Sintaxa de bază Se definește o funcție cu cuvântul cheie 'operator' urmat de simbolul operatorului. Exemplu: Complex operator+(Complex c1, Complex c2) pentru adunarea a două numere complexe.
  • Tipuri de operatori supraîncărcați Poți supraîncărca operatori aritmetici (+, -, *), de comparație (==, <), de atribuire (=), și alții. Nu poți supraîncărca operatori ca ::, ., ?:.
  • Metode vs. Funcții prietene Operatorii pot fi definiți ca metode ale clasei (pentru un operand implicit) sau ca funcții prietene (pentru doi operanzi externi).

Exemplu practic: Adunarea a două obiecte

  1. 1
    Definirea clasei class Vector { public: int x, y; Vector(int a, int b) : x(a), y(b) {} };
  2. 2
    Supraîncărcarea operatorului + Vector operator+(Vector v1, Vector v2) { return Vector(v1.x + v2.x, v1.y + v2.y); }
  3. 3
    Utilizare Vector v1(1,2), v2(3,4); Vector v3 = v1 + v2; // v3.x = 4, v3.y = 6

Folosește supraîncărcarea operatorilor doar când îmbunătățește claritatea, evită suprautilizarea care poate deruta.

Mai multe din Programare