Twitter und Facebook-Anbindung
X
Tweet Follow @twitterapi
!!! Anbindung an twitter und facebook öffnen !!!

Wenn Ihnen mein Online-Buch gefällt,
dann bedanken Sie sich doch mit einer kleinen Spende...

23.1 Allgemein zu Operatoren

23.1 Allgemein zu Operatoren

Bevor ich richtig anfange, sollte ich doch ein paar Worte im Vorfeld verlieren. Das Überladen von Operatoren macht nicht bei jeder Klasse Sinn. Im vorigen Kapitel ging es um diverse Fahrzeuge und die lassen sich bekanntlich schlecht miteinander verrechnen, aber hin und wieder gibt es Klassen, mit denen es wiederum sehr gut geht und dies sind meistens Klassen, welche irgendwelche Werte oder Zeichen(ketten) repräsentieren.

Bevor man anfängt, muss man einen geeigneten Kopierkonstruktor implementieren. Hat man eine flache Objektstruktur, welche nur Primitivtypen enthält, reicht der Standardkonstruktor. In dem Moment, wo man etwas dynamisch erzeugt (z.B. Arrays oder eingebettete Objekte) ist ein eigener Kopierkonstruktor vonnöten.

Sobald man dies getan hat, muss man sich überlegen, welche Operatoren man braucht und ob diese vonnöten und realisierbar sind. Überladen kann man z.B. Vergleiche (=, <, > usw.), Zuweisungen (=, (), [], usw.), Berechnungen (+, -, *, /, +=, ++ usw.), bis hin zu dem Punk, den Pfeil sowie "new" und "delete". Eine vollständige Liste, findet man in der Hilfe bzw. im MSDN. Dort sind auch die Prioritäten ersichtlich und ob es sich um s.g. unäre (einseitige) oder binäre (zweiseitige) Operatoren handelt.

Um all dies zu zeigen, habe ich mir ein kleines Beispiel ausgedacht. Es geht um eine Klasse, welche lediglich einen Integerwert verwaltet und den besonders kreativen Namen "CInteger" haben wird. Nun könnten Sie sich fragen, warum ich das ausgerechnet mit dem Integer mache, da dies scheinbar absolut unnötig ist. Da stimme ich Ihnen zu, aber man kann sehr schön zeigen, wie man das Überladen von Operatoren realisiert, ohne viel Quelltext zu schreiben. Im Internet findet man häufig Beispiele mit einer Klasse, welche einen Bruch oder eine komplexe Zahl darstellt. Allerdings sind die Berechnungen innerhalb der Klasse und das ganze Beiwerk, oftmals so umfangreich, dass der eigentliche Fokus verloren geht. Ich zeige Ihnen also, wie es prinzipiell funktioniert und Sie können sich das dann bei Gelegenheit adaptieren.

Ich weiße explizit darauf hin, dass ich für meine Klasse keinen Kopierkonstruktor benötige und somit auch keinen implementieren werde.

Zum Seitenanfang
Zum Inhaltsverzeichnis

© Copyright by Thomas Weiß, 2009 - 2012