关于运算符重载。。。。。。
题目:编写程序定义Point类,在类中定义整型的私有成员变量x,y,定义成员函数Point& operator++();Point operator++(int);以实现对Point类重载“++”运算符,定义成函数Point& operator –-();Point operator - -(int);以实现对Point类重载“- -”运算符,实现对坐标值的改变。
我的程序:
#include<iostream>
using namespace std;
class Point
{
public:
Point(int X,int Y):x(X),y(Y){}
int getX() {return x;}
int getY() {return y;}
Point &operator ++()
{
x++;
y++;
return *this;
}
Point operator ++(int)
{
Point p=*this;
++(*this);
return p;
}
Point & operator --()
{
x--;
y--;
return *this;
}
Point operator --(int)
{
Point p=*this;
--(*this);
return p;
}
private:
int x,y;
};
int main()
{
Point point1(3,4);
cout<<"第一个点的坐标是:"<<point1.getX()<<","<<point1.getY()<<endl;
cout<<"第一个点移动后的坐标是:"<<(point1++).getX()<<","<<(point1++).getY()<<endl;
++point1;
cout<<"第二个点移动后的坐标是:"<<point1.getX()<<","<<point1.getY()<<endl;
return 0;
}
实际的运行结果是这样的:
而正确的结果不该是这样么:
第一个点的坐标是:3,4
第一个点移动后的坐标是:3,4
第二个点移动后的坐标是:5,6
求解为什么。。。。。。。。。。。。
[解决办法]