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