实现一个Point类,该类拥有私有数据成员x和y,要求用运算符重载的方式实现以下功能: 1)前缀自增(即把x和y的值均加1)。 2)大于运算(x * x + y * y的值大者为大)。 3)加法运算(两个点的加法为x和y对应相加)。 再写一段测试代码,测试类Point的功能。
时间: 2024-06-09 10:08:20 浏览: 43
以下是Point类的实现代码:
```cpp
class Point {
private:
int x;
int y;
public:
Point(int a, int b) : x(a), y(b) {}
Point& operator++() {
++x;
++y;
return *this;
}
bool operator>(const Point& other) const {
return x * x + y * y > other.x * other.x + other.y * other.y;
}
Point operator+(const Point& other) const {
return Point(x + other.x, y + other.y);
}
};
```
以下是测试代码:
```cpp
int main() {
Point p1(3, 4);
Point p2(1, 2);
// test prefix increment
++p1;
cout << p1.x << ", " << p1.y << endl;
// test greater than operator
cout << (p1 > p2) << endl;
// test addition operator
Point p3 = p1 + p2;
cout << p3.x << ", " << p3.y << endl;
return 0;
}
```
输出结果:
```
4, 5
1
5, 7
```
说明Point类的功能都能够正常运行。
阅读全文