Überladen von Operatoren

Bei meinen Prüfungsvorbereitungen bin ich auf ein c++ Kapitalmittel gestoßen, dass ich noch nie zuvor gesehen habe. Mann braucht ein paar Minuten um es erst mal zu verstehen was dort geschieht. Aber beim zweiten hinsehen versteht man, was man mit der Methode bool operator == (const Uvo& op2) const; machen kann.

#include <iostream>

using namespace std;

//Überladen Von Operatoren
class Uvo
{
public:
    int wert1, wert2;
    Uvo();
    bool operator == (const Uvo& op2) const;
};

Uvo::Uvo()
{
    wert1 = wert2 = 0;
}

bool Uvo::operator == (const Uvo& op2) const
{
    if(wert1 == op2.wert1 && wert2 == op2.wert2)
         return true;
    return false;
}

int main()
{
    Uvo *oop1 = new Uvo();
    Uvo *oop2 = new Uvo();

    oop1->wert1 = 10;
    oop1->wert2 = 20;

    if (*oop1 == *oop2)
        cout << "Die Werte sind gleich\n";
    else
        cout << "Die Werte sind unterschiedlich\n";

    oop2->wert1 = 10;
    oop2->wert2 = 20;

    if (*oop1 == *oop2)
        cout << "Die Werte sind gleich\n";
    else
        cout << "Die Werte sind unterschiedlich\n";

    return 0;
}

Quelle: cpp-tutor.de