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

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

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);