对类Point重载“++”(自增)、“--”(自减)运算符,要求同时重载前缀和后缀的形式。编程实现。上传程序代码及运行结果。
时间: 2024-06-13 19:06:19 浏览: 157
对类Point重载(自增,自减)运算符
重载“++”(自增)、“--”(自减)运算符是C++中的一个重要概念,可以通过类的成员函数或友元函数来实现。以下是一个示例程序,演示了如何对类Point重载“++”(自增)、“--”(自减)运算符,同时重载前缀和后缀的形式。
```cpp
#include <iostream>
using namespace std;
class Point {
public:
Point(int x = 0, int y = 0) : m_x(x), m_y(y) {}
Point& operator++(); // 前缀++
Point operator++(int); // 后缀++
Point& operator--(); // 前缀--
Point operator--(int); // 后缀--
void display() const { cout << "(" << m_x << ", " << m_y << ")" << endl; }
private:
int m_x;
int m_y;
};
Point& Point::operator++() {
++m_x;
++m_y;
return *this;
}
Point Point::operator++(int) {
Point old = *this;
++(*this);
return old;
}
Point& Point::operator--() {
--m_x;
--m_y;
return *this;
}
Point Point::operator--(int) {
Point old = *this;
--(*this);
return old;
}
int main() {
Point p(1, 2);
cout << "p = ";
p.display();
cout << "++p = ";
(++p).display();
cout << "p = ";
p.display();
cout << "p++ = ";
(p++).display();
cout << "p = ";
p.display();
cout << "--p = ";
(--p).display();
cout << "p = ";
p.display();
cout << "p-- = ";
(p--).display();
cout << "p = ";
p.display();
return 0;
}
```
运行结果如下:
```
p = (1, 2)
++p = (2, 3)
p = (2, 3)
p++ = (2, 3)
p = (3, 4)
--p = (2, 3)
p = (2, 3)
p-- = (2, 3)
p = (1, 2)
```
阅读全文