您的位置:首页 > 编程语言 > C语言/C++

[C++] C++的运算符重载(+、-、前置--、后置--,前置++,后置++、==)

2016-04-12 11:14 561 查看
#include<iostream>

using namespace std;

class point

{

public:

point(int xx, int yy):x(xx), y(yy){}

point operator+(point &a)

{

return point(x+a.x, y+a.y);

}

point operator-(point &a)

{

return point(x-a.x, y-a.y);

}

point& operator++() // 前置++

{

x++;

y++;

return *this;

}

point operator++(int) //后置++

{

point a = *this;

// 或者++a;

a.x++;

a.y++;

return a;

}

point& operator--() //前置--

{

x--;

y--;

return *this;

}

point operator--(int) // 后置--

{

point a = *this;

a.x--;

a.y--;

return a;

}

bool operator==(point &a)

{

return x==a.x && y==a.y;

}

void show()

{

printf("x = %d y = %d\n", x, y);

}

private:

int x;

int y;

};

int main()

{

point a(3, 4);

point b(5, 5);

point c = a+b;

c.show();

c = a++;

c.show();

c = ++a;

c.show();

c = --a;

c.show();

c = a--;

c.show();

c = a-b;

c.show();

point d(3, 4);

printf("a == b %s\n", a==b?"Yes":"No");

printf("a == d %s\n", a==d?"Yes":"No");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: