#include
using namespace std;
class Point {
private:
int x, y;
public:
Point() {}
Point(int _x, int _y) {
x = _x;
y = _y;
}
Point(const Point & tmp) {
x = tmp.x;
y = tmp.y;
}
int get_x() {
return x;
}
int get_y() {
return y;
}
void set_x(int _x) {
x = _x;
}
void set_y(int _y) {
y = _y;
}
Point operator + (Point tmp) {
Point res(x + tmp.x, y + tmp.y);
return res;
}
Point operator - (Point tmp) {
Point res(x - tmp.x, y - tmp.y);
return res;
}
Point operator * (Point tmp) {
Point res(x * tmp.x, y * tmp.y);
return res;
}
Point operator / (Point tmp) {
Point res(x / tmp.x, y / tmp.y);
return res;
}
bool operator < (Point tmp) {
if(x < tmp.x) {
return true;
}
else {
return false;
}
}
bool operator <= (Point tmp) {
if(x <= tmp.x) {
return true;
}
else {
return false;
}
}
bool operator > (Point tmp) {
if(x > tmp.x) {
return true;
}
else {
return false;
}
}
bool operator >= (Point tmp) {
if(x >= tmp.x) {
return true;
}
else {
return false;
}
}
bool operator == (Point tmp) {
if(x == tmp.x && y == tmp.y) {
return true;
}
else {
return false;
}
}
bool operator != (Point tmp) {
if(x == tmp.x and y == tmp.y) {
return false;
}
else {
return true;
}
}
Point & operator += (Point tmp) {
x += tmp.x;
y += tmp.y;
return *this;
}
Point & operator -= (Point tmp) {
x -= tmp.x;
y -= tmp.y;
return *this;
}
Point & operator *= (Point tmp) {
x *= tmp.x;
y *= tmp.y;
return *this;
}
Point & operator /= (Point tmp) {
x /= tmp.x;
y /= tmp.y;
return *this;
}
Point & operator = (Point tmp) {
x = tmp.x;
y = tmp.y;
return *this;
}
void print() {
cout << x << " " << y << endl;
}
};
int main()
{
Point p1(10, 6);
Point p2(2, 2);
p1 = p2;
p1.print();
return 0;
}