2.对类Point重载++(自增)、--(自减)运算符,要求同时重载前缀和后缀的形式。要求:定义成员函数实现重载
时间: 2023-10-27 08:15:53 浏览: 198
好的,针对您的问题,我来为您解答。
对类Point重载++(自增)、--(自减)运算符,要求同时重载前缀和后缀的形式。要求:定义成员函数实现重载,可以按照以下方式实现:
```cpp
class Point {
public:
// 构造函数
Point(int x = 0, int y = 0) : m_x(x), m_y(y) {}
// 重载前缀++
Point& operator++() {
++m_x;
++m_y;
return *this;
}
// 重载后缀++
Point operator++(int) {
Point temp(*this);
++*this;
return temp;
}
// 重载前缀--
Point& operator--() {
--m_x;
--m_y;
return *this;
}
// 重载后缀--
Point operator--(int) {
Point temp(*this);
--*this;
return temp;
}
private:
int m_x, m_y;
};
```
在这个实现中,我们重载了前缀和后缀的++和--运算符。在重载前缀运算符时,我们直接对Point对象的成员变量进行了自增或自减操作,并返回了一个指向自身的引用。在重载后缀运算符时,我们首先创建了一个临时对象,将其初始化为当前对象的值,并在之后对当前对象进行自增或自减操作,最后返回原始的临时对象,以保证后缀运算符返回的是原始值而非自增或自减后的值。
希望这个回答能够帮助您。
阅读全文