定义Point类,有坐标x,y两个私有成员变量;对Point类重载“++”(自增)、“--”(自减)和“==”(相等)运算符,实现对坐标值的改变,要求用成员函数方法实现。
时间: 2024-12-22 17:21:13 浏览: 0
当然可以,首先,我们定义一个名为`Point`的类,它有两个私有成员变量`x`和`y`,用于表示二维空间中的点。接下来,我们将为这个类重载加法、减法和等于运算符,以便支持坐标值的操作:
```cpp
class Point {
private:
double x;
double y;
public:
// 构造函数
Point(double x = 0, double y = 0) : x(x), y(y) {}
// 自增运算符++
Point& operator++() {
++x;
++y;
return *this;
}
// 自减运算符--
Point& operator--() {
--x;
--y;
return *this;
}
// 等于运算符==
bool operator==(const Point& other) const {
return (x == other.x) && (y == other.y);
}
// 为了方便比较,提供两个朋友函数重载比较操作符
friend bool operator==(const Point& a, const Point& b);
friend bool operator!=(const Point& a, const Point& b);
};
// 对比运算符重载
bool operator==(const Point& a, const Point& b) {
return a == Point(b.x, b.y); // 使用a的实例比较,因为a已经重载了==
}
bool operator!=(const Point& a, const Point& b) {
return !(a == b); // 如果不等于则返回反向结果
}
```
在这个`Point`类中,通过`operator++()`和`operator--()`实现了坐标值的递增和递减,而`operator==(const Point&)`则用来判断两个点是否相等。另外,我们还提供了友元函数来重载了`==`和`!=`比较操作符。
阅读全文