重载++和--的一个问题
//Point 中x,y分别代表8进制的两位
//重载左右++,左右--
#include <iostream>
using namespace std;
class Point{
private:
int x,y;
public:
Point(int x=0,int y=0):x(x),y(y){}
Point& operator++(); //重载前置++(重载为成员函数)
Point operator++(int); //重载后置++(重载为成员函数)
Point& operator-- ();
Point operator-- (int);
void display()const;
};
Point& Point::operator++(){
y++;
if(y>=8){
y-=8;
x++;
cout<<"hello hello "<<x<<endl; //注意这里啊
if(x>=8){
x-=8;
}
}
return *this;
}
Point Point::operator ++(int){
Point old=*this;
++(* this);
return old;
}
Point& Point::operator--(){
y--;
if(y<0){
y=7;
x--;
cout<<"Hello "<<x<<endl; //注意这里啊
if(x<0){
x=7;
}
}
return *this;
}
Point Point::operator--(int){
Point old=*this;
//cout<<"zf"<<endl;
--(* this);
//cout<<"lxp"<<endl;
return old;
}
void Point::display()const{
cout<<"("<<x<<","<<y<<")"<<endl;
}
int main()
{
Point p1(7,7),p2(7,7);
cout<<"p1的值:";
p1.display();
cout<<"p2的值:";
p2.display();
cout<<"++p1的值是:";
(++p1).display();
cout<<"p2++的值是:";
(p2++).display(); //这里会调用 cout<<"hello hello "<<x<<endl;
Point p3(0,0),p4(7,7);
cout<<"p3的值:";
p3.display();
cout<<"p4的值:";
p4.display();
cout<<"--p3的值是:";
(--p3).display();
cout<<"p4--的值是:";
(p4--).display(); //为什么这里不调用 cout<<"Hello "<<x<<endl;
return 0;
}