class point {
public:
    point(int x, int y)
        : x_ { x }
        , y_ { y } {};
    point& operator+=(point const& p);
    point& operator-=(point const& p);
    point& operator*=(point const& p);
    point& operator/=(point const& p);
    point& operator*=(int i);

private:
    int x_;
    int y_;
};

point& point::operator+=(point const& p)
{
    x_ += p.x_;
    y_ += p.y_;
    return *this;
}

point& operator+=(point const& p) { /* what do we put here? */ }
point& operator-=(point const& p) { /* what do we put here? */ }
point& operator*=(point const& p) { /* what do we put here? */ }
point& operator/=(point const& p) { /* what do we put here? */ }
point& operator*=(int i) { /* what do we put here? */ }