编写程序声明Point类,在类中声明整型的私有成员变量x、y,声明成员函数Point& operator++( );Point operator++( int);以实现对Point类重载“++”(自增)运算符,声明成员函数Point& operator--( );Point operator--( int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。 在主函数中完成充分测试!
时间: 2023-12-21 20:03:09 浏览: 122
以下是一个可能的代码实现:
```
#include <iostream>
using namespace std;
class Point {
private:
int x, y;
public:
Point(int nx = 0, int ny = 0) : x(nx), y(ny) {}
Point& operator++();
Point operator++(int);
Point& operator--();
Point operator--(int);
int getx() { return x; }
int gety() { return y; }
};
Point& Point::operator++() {
x++;
y++;
return *this;
}
Point Point::operator++(int) {
Point temp(*this);
x++;
y++;
return temp;
}
Point& Point::operator--() {
x--;
y--;
return *this;
}
Point Point::operator--(int) {
Point temp(*this);
x--;
y--;
return temp;
}
int main() {
int m, n;
cin >> m >> n;
Point a(m, n);
cout << "a的值为:" << a.getx() << " , " << a.gety() << endl;
a++;
cout << "after a++,a的值为:" << a.getx() << " , " << a.gety() << endl;
++a;
cout << "after ++a,a的值为:" << a.getx() << " , " << a.gety() << endl;
a--;
cout << "after a--,a的值为:" << a.getx() << " , " << a.gety() << endl;
--a;
cout << "after --a,a的值为:" << a.getx() << " , " << a.gety() << endl;
return 0;
}
```
在这个实现中,我们使用了前缀和后缀自增运算符重载函数和前缀和后缀自减运算符重载函数来实现对Point类的自增和自减操作。在自增和自减运算符重载函数中,我们直接对x和y成员变量进行自增或自减操作,并返回*this的引用或一个新的Point对象。在主函数中,我们创建了一个Point对象a,对其进行自增和自减操作,最后输出结果。
阅读全文