#pragma once class Point { private: float m_x, m_y; public: Point(float x, float y) : m_x(x), m_y(y) {} Point() : m_x(0), m_y(0) {} float x() const { return m_x; } float y() const { return m_y; } Point operator+(const Point &other) const { return Point(x() + other.x(), y() + other.y()); } Point operator-(const Point &other) const { return Point(x() - other.x(), y() - other.y()); } Point &operator+=(const Point &other) { m_x += other.x(); m_y += other.y(); return *this; } Point &operator-=(const Point &other) { m_x -= other.x(); m_y -= other.y(); return *this; } bool operator==(const Point &other) const { return (x() == other.x() && y() == other.y()); } };