定义描述一个平面点类Point,重载++和--,用成员函数重载++的前置和后置运算,用友元函数重载--的前置和后置运算,编写程序测试
时间: 2023-12-24 20:03:36 浏览: 139
以下是实现平面点类Point并重载运算符的示例代码:
```c++
#include<iostream>
using namespace std;
class Point{
private:
double x,y;
public:
Point(double x=0,double y=0):x(x),y(y){}
Point operator++(){ //前置++
++x;
++y;
return *this;
}
Point operator++(int){ //后置++
Point temp(*this);
++x;
++y;
return temp;
}
friend Point operator--(Point& p){ //前置--
--p.x;
--p.y;
return p;
}
friend Point operator--(Point& p,int){ //后置--
Point temp(p);
--p.x;
--p.y;
return temp;
}
void display(){
cout<<"("<<x<<","<<y<<")"<<endl;
}
};
int main(){
Point p1(1,2),p2(3,4);
cout<<"p1: ";
p1.display();
cout<<"p2: ";
p2.display();
cout<<endl;
++p1;
cout<<"After ++p1: ";
p1.display();
p1++;
cout<<"After p1++: ";
p1.display();
--p2;
cout<<"After --p2: ";
p2.display();
p2--;
cout<<"After p2--: ";
p2.display();
return 0;
}
```
运行结果为:
```
p1: (1,2)
p2: (3,4)
After ++p1: (2,3)
After p1++: (3,4)
After --p2: (2,3)
After p2--: (3,4)
```
在上面的代码中,我们定义了一个平面点类Point,它包括两个私有数据成员x和y,以及一个构造函数。我们重载了前置和后置++运算符作为成员函数,以及前置和后置--运算符作为友元函数。
在主函数中,我们创建了两个点p1和p2,然后测试了重载的运算符。我们首先对p1进行前置++运算,然后对p1进行后置++运算。然后对p2进行前置--运算,最后对p2进行后置--运算。每次运算后,我们都会输出结果。
阅读全文