Weitere Operatoren überladen in c++
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
!BBH !PIZZA !invest_vote
@ozelot47! Your Content Is Awesome so I just sent 1 $BBH (Bitcoin Backed Hive) to your account on behalf of @dotwin1981. (12/50)
@dotwin1981 denkt du hast ein Vote durch @investinthefutur verdient!
@dotwin1981 thinks you have earned a vote of @investinthefutur !
$PIZZA slices delivered:
@dotwin1981(12/15) tipped @ozelot47