二维点的输入输出

题目描述

补全代码,使得程序符合下文所述的输入输出规定。

关于输入

若干行,每行两个空格分隔的整数。

关于输出

与输入相同。

核心技巧

  • 流运算符通常重载为友元。

参考答案

#include <iostream>

class Point {
    int x, y;

public:
    Point() = default;
    Point(int x, int y) : x{x}, y{y} {}

    friend std::istream& operator>>(std::istream& in, Point& p) {
        return in >> p.x >> p.y;
    }
    friend std::ostream& operator<<(std::ostream& out, const Point& p) {
        return out << p.x << ' ' << p.y;
    }
};

int main() {
    Point p;
    while (std::cin >> p) {
        std::cout << p << std::endl;
    }
}