题目要求定义一个point类,包含数据成员x和y。要求重载运算符“<<”和“>>”,用于输入输出point类的对象。
时间: 2024-03-06 08:52:08 浏览: 119
好的,下面是一个简单的point类的定义,包含数据成员x和y,并重载了运算符“<<”和“>>”:
```c++
#include <iostream>
class Point {
public:
Point() : x(0), y(0) {}
Point(int x, int y) : x(x), y(y) {}
friend std::istream& operator>>(std::istream& input, Point& p) {
input >> p.x >> p.y;
return input;
}
friend std::ostream& operator<<(std::ostream& output, const Point& p) {
output << "(" << p.x << ", " << p.y << ")";
return output;
}
private:
int x;
int y;
};
```
在这个类中,我们定义了默认构造函数和另一个带有两个参数的构造函数,用于初始化数据成员x和y。
我们还定义了两个友元函数:operator>>和operator<<,用于重载输入和输出运算符。在operator>>中,我们从输入流中读取两个整数并将它们存储到point对象的x和y成员变量中。在operator<<中,我们将point对象的x和y成员变量输出到输出流中。
在使用这个类时,我们可以像下面这样输入和输出point对象:
```c++
int main() {
Point p;
std::cin >> p;
std::cout << p << std::endl;
return 0;
}
```
输入的格式应该是 "x y",例如 "3 4",输出的格式是 "(x, y)",例如 "(3, 4)"。
阅读全文