C++编写:定义Point类,重载”++”(自增)、 “--”(自减)运算符,要求同时重载前缀和后缀的形式。
时间: 2024-12-23 11:13:19 浏览: 28
在C++中,我们可以定义一个名为`Point`的类,然后为了实现加法和减法的自增、自减操作,我们需要重载`++`和`--`运算符。这里是一个简单的例子:
```cpp
class Point {
private:
double x;
double y;
public:
// 构造函数
Point(double x = 0, double y = 0) : x(x), y(y) {}
// 自增运算符重载(前缀和后缀)
Point& operator++() { // 前缀++
x += 1;
y += 1;
return *this;
}
Point operator++(int) { // 后缀++
Point temp(*this);
++*this; // 先执行前缀递增
return temp;
}
// 类似的地,我们也可以重载--
Point& operator--() { // 前缀--
x -= 1;
y -= 1;
return *this;
}
Point operator--(int) { // 后缀--
Point temp(*this);
--*this; // 先执行前缀递减
return temp;
}
// 访问器方法
double getX() const { return x; }
double getY() const { return y; }
// 显示点的位置
void display() const {
std::cout << "Point (" << x << ", " << y << ")\n";
}
};
```
在这个类中,`operator++()`和`operator--()`分别实现了自增和自减操作,并且提供前缀和后缀版本。注意,对于后缀形式,我们需要返回一个新的临时对象,以便在表达式`++p`(前缀)或`(p++)`(后缀)之后保留原始对象的状态。
阅读全文