运算符重载

#include <iostream>
using namespace std;

struct Point {
public:
    int x;
    int y;

    friend bool operator ==(Point &left, Point &right) {
        return (left.x == right.x) && (left.y == right.y);
    }

    friend bool operator !=(Point &left, Point &right) {
        return (left.x != right.x) || (left.y != right.y);
    }
};

Point p1 = {11};
Point p2 = {22};
Point p3 = {11};
bool equal1 = p1 == p2;
//equal1 is 0
bool equal2 = p1 == p3;
//equal2 is 1
bool equal3 = p1 != p3;
//equal3 is 0

cout << "equal1 is " << equal1 << endl;
cout << "equal2 is " << equal1 << endl;
cout << "equal3 is " << equal1;