Weitere Operatoren überladen in c++

avatar

Im letzten Beitrag wurden ein paar arithmetische Operatoren überladen. Damit kann man mit Objekten rechnen, genauso wie mit primitiven Datentypen.
In diesem Beitrag zeige ich wie man drei weitere Operatoren überladen kann. Ein nützlicher Operator ist der << - Operator, womit man eine Standardausgabe auf der Konsole erhält. Dazu überlädt man den Ausgabestrom std::ostream und was dieser an informationen über das Objekt ausgeben soll. Der Operator für Arrays kann auch so überladen werden, sodass man Objekte die keine Listen sind auch mit indizes ansprechen kann.

#include <iostream>

class IntegerList {
public:
    int list[5];
    IntegerList() {}
    virtual ~IntegerList(){}

    IntegerList operator*() const {
        return *this;
    }

    int& operator[](int index){
        if(index >= 0 && index <= 5){
            return list[index];
        } else {
            exit(EXIT_FAILURE);
        }
    }
};

void operator<< (std::ostream& out, const IntegerList& object){
    for(auto n = 0; n < 5; n++){
        out << object.list[n] << '\n';
    }
};

int main(){
    IntegerList l = IntegerList();
    for(int n = 0; n < 5; n++){
        l[n] = n + 1;
    };

    std::cout << l;
}



0
0
0.000
4 comments