C++ 设计一个Point类,并重载++(自增)和--(自减)运算符。 要求同时重载前置和后置形式 创建新的Point对象初始化为原点(0,0) 在主函数中输出验证a++、++a、a--、--a的输出值
时间: 2024-04-06 07:33:35 浏览: 77
对类Point重载(自增,自减)运算符
好的,以下是代码实现:
```c++
#include<iostream>
using namespace std;
class Point{
public:
int x, y;
Point():x(0), y(0){} //构造函数,初始化为原点
Point(int a, int b):x(a), y(b){} //构造函数,初始化为(a,b)
Point operator++(){ //前置++
x++;
y++;
return *this;
}
Point operator++(int){ //后置++
Point temp(*this);
x++;
y++;
return temp;
}
Point operator--(){ //前置--
x--;
y--;
return *this;
}
Point operator--(int){ //后置--
Point temp(*this);
x--;
y--;
return temp;
}
};
int main(){
Point a; //创建新的Point对象初始化为原点
cout << "a++: (" << a.x++ << "," << a.y++ << ")" << endl;
cout << "++a: (" << ++a.x << "," << ++a.y << ")" << endl;
cout << "a--: (" << a.x-- << "," << a.y-- << ")" << endl;
cout << "--a: (" << --a.x << "," << --a.y << ")" << endl;
return 0;
}
```
输出结果为:
```
a++: (0,0)
++a: (2,2)
a--: (2,2)
--a: (0,0)
```
其中,`a++`是先输出`a`的值,再将`a`的值加1;`++a`是先将`a`的值加1,再输出`a`的值;`a--`是先输出`a`的值,再将`a`的值减1;`--a`是先将`a`的值减1,再输出`a`的值。
阅读全文