1.定义Point类,有坐标x,y两个成员变量:对Point类重载“十十”(自增)、“一一”(自减)运算符,实现对坐标值的改变。
时间: 2023-10-16 21:21:30 浏览: 152
好的,下面是Point类的定义和运算符重载的实现:
```cpp
class Point {
public:
Point(int x = 0, int y = 0) : x_(x), y_(y) {}
int get_x() const { return x_; }
int get_y() const { return y_; }
Point& operator++() { // 重载前置自增运算符
++x_;
++y_;
return *this;
}
Point operator++(int) { // 重载后置自增运算符
Point old = *this;
++(*this);
return old;
}
Point& operator--() { // 重载前置自减运算符
--x_;
--y_;
return *this;
}
Point operator--(int) { // 重载后置自减运算符
Point old = *this;
--(*this);
return old;
}
private:
int x_, y_;
};
```
运算符重载的实现过程中,需要注意以下几点:
1. 前置自增/自减运算符的返回值是对象本身,因此需要在函数体内直接修改成员变量并返回*this。
2. 后置自增/自减运算符的返回值是对象的一个副本,因此需要先将原对象保存到一个临时变量中,再对原对象进行自增/自减操作,并返回保存的临时变量。
3. 在运算符重载函数中,不要修改对象的状态,因为这可能会导致其他代码出现错误。
阅读全文