编写程序实现下列操作,定义点类Point,有坐标x,y两个数据成员,重载运算符">>“、”<<“,“+”、”-"实现两个点的输入、输出、相加、相减运算,在主函数中实例化两个Point类型对象a,b,对上述重载运算符进行测试。c++
时间: 2024-11-04 19:15:58 浏览: 61
在C++中,你可以通过定义一个名为`Point`的类,包含`x`和`y`作为数据成员,并重载一些基本的运算符来实现你所描述的功能。这里是一个简单的示例:
```cpp
#include <iostream>
class Point {
public:
double x;
double y;
// 构造函数
Point(double x = 0.0, double y = 0.0) : x(x), y(y) {}
// 输入运算符(>>)重载
friend std::istream& operator>>(std::istream& is, Point& p) {
is >> p.x >> p.y;
return is;
}
// 输出运算符<<(重载)
friend std::ostream& operator<<(std::ostream& os, const Point& p) {
os << "Point (" << p.x << ", " << p.y << ")";
return os;
}
// 加法运算符+(重载)
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};
}
};
int main() {
Point a(1.0, 2.0);
Point b(3.0, 4.0);
// 输入
std::cout << "Enter coordinates for point a: ";
std::cin >> a;
std::cout << "Enter coordinates for point b: ";
std::cin >> b;
// 输出
std::cout << "Point a: " << a << std::endl;
std::cout << "Point b: " << b << std::endl;
// 运算并输出结果
Point c = a + b;
std::cout << "The sum of points a and b is: " << c << std::endl;
Point d = a - b;
std::cout << "The difference between points a and b is: " << d << std::endl;
return 0;
}
```
在这个例子中,我们首先定义了一个`Point`类,然后分别重载了输入输出运算符`>>`和`<<`以及加法和减法运算符`+`和`-`。在`main`函数中,我们创建了两个`Point`类型的对象`a`和`b`,并演示了如何使用这些重载的运算符进行输入、输出及计算。
阅读全文