请用C++编写下列程序:一个点类(point),私有属性包括x和y(表示点的坐标)。重载"--"运算符,将点的坐标x和y都--,包括前置--和后置--。然后在main函数中使用前置--和后置--,输出点的坐标。
时间: 2024-10-19 13:04:43 浏览: 63
```cpp
#include <iostream>
class Point {
private:
int x;
int y;
public:
// 构造函数
Point(int x = 0, int y = 0) : x(x), y(y) {}
// 重载 "--" 运算符 (前缀递减)
Point& operator--() {
x--;
y--;
return *this;
}
// 重载 "--" 运算符 (后缀递减)
Point operator--(int) {
Point temp(*this);
x--;
y--;
return temp;
}
// 输出点的坐标
void display() {
std::cout << "Point (" << x << ", " << y << ")\n";
}
};
int main() {
Point p(5, 10); // 创建一个点
std::cout << "Before decrement:\n";
p.display();
// 使用前置递减
--p;
std::cout << "After prefix decrement:\n";
p.display();
// 使用后置递减
Point q = p--; // 先赋值再递减
std::cout << "After postfix decrement:\n";
q.display();
return 0;
}
```
在这个程序中,我们首先定义了一个`Point`类,包含两个私有成员变量`x`和`y`。然后我们重载了`--`运算符,实现了前缀递减和后缀递减操作。最后,在`main`函数中创建了一个点实例并演示了如何使用这两种递减方式。
阅读全文