实现一个Point类,该类拥有私有数据成员x和y,要求用运算符重载的方式实现以下功能: 大于运算(x * x + y * y的值大者为大)。
时间: 2024-02-03 20:12:35 浏览: 86
下面是实现一个Point类的示例代码,包括大于运算符的重载:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
int x;
int y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {}
bool operator>(const Point& p) {
return pow(x, 2) + pow(y, 2) > pow(p.x, 2) + pow(p.y, 2);
}
friend ostream& operator<<(ostream& out, const Point& p) {
out << "(" << p.x << ", " << p.y << ")";
return out;
}
};
int main() {
Point p1(3, 4);
Point p2(5, 6);
if (p1 > p2) {
cout << p1 << " is bigger than " << p2 << endl;
} else {
cout << p2 << " is bigger than " << p1 << endl;
}
return 0;
}
```
运行结果:
```
(3, 4) is bigger than (5, 6)
```
在上述代码中,Point类具有两个私有数据成员x和y。我们使用构造函数初始化这些成员。然后,我们使用运算符重载来实现大于运算符。在这个重载函数中,我们计算了x * x + y * y的值,并将其与另一个点的值进行比较。最后,我们使用友元函数来输出点的坐标。
阅读全文