Головна‎ > ‎C++‎ > ‎Класи‎ > ‎

Перевантаження операторів

Метод в середині класу

class Point{
 public:
     int x;
     int y;
     Point operator+(const Point& other) {   // const - аби не змінювати в середні
          Point n;
          n.x = x + other.x;
          n.y = y + other.y;
          return n;
     }
};

int main()
{
     Point p1, p2, p3;
     p1.x = 1;
     p1.y = 2;
     p2.x = 4;
     p2.y = 5;

     p3 = p1 + p2;    // p3 = p1.operator+(p2); 

     cout << p3.x << " " << p3.y;

     system("pause");
     return 0;
}


5 7




Point operator+(int a) {}   // додавати число до об'єкту



Зовнішня функція

// friend
Point operator+(const Point& l, const Point& r) {   // const - не можна змінювати
Point n;
n.x = l.x + r.x;
n.y = l.y + r.y;
return n;
}

p3 = p1 + p2;    // p3 = operator+(p1, p2);