Operatoren überladen in c++

avatar

In c++ gibt es die Möglichkeit, einige Operatoren wie z.B. das addieren, multiplizieren, boolesche Operatoren oder auch die Standardausgabe zu überladen.
Dieses Feature ist nützlich, wenn man z.B. mit Objekten wie Vektoren oder Matrizen rechnen möchte. Der Aufruf funktioniert genauso, als wenn man zwei primitive Datentypen wie integer aufaddiert.

Hier folgt ein kleines Beispiel wie man das Objekt Integer aufaddieren kann mit dem + oder += Operator, welcher überladen wurde.

#include <iostream>

class Integer {
private:
    int _value;
public:
    Integer(int value) : _value(value) {}
    virtual ~Integer(){}
    int valueOf() const {
        return _value;
    };

    /* operator affects this Integer object */
    Integer& operator+= (const Integer& other){
        this->_value += other._value;
        return *this;
    };
};

/* operator on two independend Integers */
Integer operator+ (const Integer& one, const Integer& two){
    return Integer(one.valueOf() + two.valueOf());
}

int main(){
    Integer one = Integer(2);
    Integer two = Integer(3);
    Integer result = one + two;
    std::cout << result.valueOf() << '\n';

    result += two;
    std::cout << result.valueOf() << '\n';
}

cpp_operator1.png



0
0
0.000
9 comments
avatar

oh, an das erinnere ich mich flüchtig.
Es beginnt immer wieder bei Position 0.

0
0
0.000
avatar

Das kenne ich. Man lernt nie aus. Vor allem das ständige wiederholen von bereits gelernten...
!LUV

0
0
0.000
avatar

Da hast du recht. Mir fehlt leider so häufig die Motivation oder die Konzentration. Aber ich versuch dran zu bleiben.

0
0
0.000