定义一个点类,求两个点相加,重载“+”号(成员函数),输入一个点,重载“>>”,并以(x,y)的方式输出一个点,重载“<<”
时间: 2024-12-15 07:24:06 浏览: 12
首先,我们定义一个简单的二维点类`Point`,包含坐标x和y。为了支持向量的相加、输入输出操作,我们需要对"+"运算符以及输入输出流处理进行重载。
```cpp
#include <iostream>
class Point {
private:
double x;
double y;
public:
// 构造函数
Point(double x = 0, double y = 0) : x(x), y(y) {}
// 点相加,+ 运算符重载
Point operator+(const Point& other) const {
return Point(x + other.x, y + other.y);
}
// 输入流重载(从>>)
friend std::istream& operator>>(std::istream& is, Point& point) {
is >> point.x >> point.y;
return is;
}
// 输出流重载(到<<)
friend std::ostream& operator<<(std::ostream& os, const Point& point) {
os << "(" << point.x << ", " << point.y << ")";
return os;
}
};
int main() {
// 示例:创建两个点,相加,并输出结果
Point p1(1, 2), p2(3, 4);
Point result = p1 + p2;
std::cout << "p1 + p2 = " << result << std::endl;
// 从标准输入读取点
Point inputPoint;
std::cin >> inputPoint;
std::cout << "Input point: " << inputPoint << std::endl;
return 0;
}
```
在这个例子中,我们定义了`Point`类,并通过友元函数的形式实现了对"<<"和">>"运算符的重载。用户可以直接像处理普通数值一样使用这些操作。
阅读全文