#include<iostream>
using namespace std;// Point类
class Point
{// 构造函数与析构函数
public:Point(int _x =0,int _y =0):x(_x),y(_y){}~Point(){}
public:// 普通成员函数voidshowPosition(){ cout <<"("<< x <<", "<< y <<")"<< endl;}// 输出点的坐标
public://运算符函数重载
Point operator ++();// 前置, ++i\--i
Point operator --();
Point operator ++(int);// 后置,i++\i--
Point operator --(int);
private:int x;int y;};
Point Point:: operator ++()// 前置{
Point cc;
cc.x = x +1;
cc.y = y +1;
x +=1;
y +=1;return cc;}
Point Point::operator --()// 前置{
Point cc;
cc.x = x -1;
cc.y = y -1;
x -=1;
y -=1;return cc;}
Point Point::operator ++(int)// 后置{
Point cc;
cc.x = x;
cc.y = y;
x +=1;
y +=1;return cc;}
Point Point::operator --(int)// 后置{
Point cc;
cc.x = x;
cc.y = y;
x -=1;
y -=1;return cc;}intmain(){
Point cc;
Point cc1(2,4);
Point cc2(5,8);
cout <<"两个点初始坐标:"<< endl;
cout <<"Position cc1:"; cc1.showPosition();
cout <<"Position cc2:"; cc2.showPosition();
cout <<"--------------------------------------"<< endl;
cout <<"后置运算后的坐标:"<< endl;
cc = cc1++;
cout <<"Pos : cc1++= "; cc1.showPosition();
cc = cc2--;
cout <<"Pos : cc2--= "; cc2.showPosition();
cout <<"--------------------------------------"<< endl;
cout <<"前置运算后的坐标:"<< endl;
cc =++cc1;
cout <<"Pre : ++cc1= "; cc1.showPosition();
cc =--cc2;
cout <<"Pre : --cc2= "; cc2.showPosition();return0;}