Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++

Unäre Operatoren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Sehen Sie in diesem Film, wie Sie unäre Operatoren überladen, um auch bei Objekten postincrement bzw. präincrement rechnen zu können.

Transkript

Nun kommen wir zum Überladen von unären Operatoren. Auch das geht natürlich. Unären Operatoren zum Beispiel Minus, als einzelnes Zeichen oder Plus Plus oder Minus Minus jeweils als Prefix oder Postfix, da gibt es natürlich dann noch die unterschiedlichen Möglichkeiten und das sehen wir uns gleich mal an, also wieder unser Stellarobject, Position, Geschwindigkeit, Masse und ein Identifier, eine Ausgabe und jetzt geht es eigentlich los. Wir machen das diesmal intern die entsprechende Definition: Stellarobject_cls operator - wird jetz hier definiert, ohne Parameter, arbeitet ja nur auf dem eigenen Element, liefert aber tmp zurück, deshalb legen wir hier tmp an, eine Kopie von seinem eigenen Objekt und hier soll einfach nur der Geschwindigkeitsvektor mit minus versehen werden, also umgedreht werden. Da kann man sich hier überlegen, was hier sinnvoll ist als Operation minus, als unären Operationen. Die Binäre gibt es natürlich auch, die könnte man zum Beispiel ganz anders definieren, wenn man will. So, jetzt haben wir hier den operator++, also erhöhen als prefix, wird es ohne Inhalt in der Klammer angegeben. Und was machen wir? Den Identifier von mir aus erhöhen. Ob das jetzt so sinnvoll ist, ist nochmal eine andere Geschichte, aber wir übergeben hier mit *this einfach das eigene Objekt. Brauche ich jetzt gar keine Temporärvariable, ist auch eine Möglichkeit, es zu machen. Als postfix sieht es ein bisschen anders aus. Der Compiler muss ja jetzt wissen, dass es der Postfix ist, weil er lässt sich so nicht unterscheiden und da hat man sich hier drauf geeinigt, dass man hier ein dummyparameter Interger angibt. So kann man sich das auch merken, Integer danach kommt der int, also ist es ein Postfix, das ++ ist dann danach. Naja wie auch immer, muss man ein bisschen aufpassen, dass man den Richtigen erwischt. Hier brauche ich jetzt eine tmp Variable von dem eigenen Objekt, denn der Postfix soll ja den Wert erst erhöhen, nachdem er ihn abliefert. Das heißt, er liefert hier auch den Wert zurück natürlich, aber der zurückliefernde Wert ist tmp selber, unverändert, während das eigene Objekt mit id ++ um 1 erhöht wird, also etwas tricky, muss man aufpassen hier, damit es auch nachher im Hauptprogramm richtig funktioniert. Hier deklarieren wir wieder mal oder definieren wir hier mal c1 und c2 mit entsprechenden Parametern, beide haben die Masse 1000, aber hier zwei verschiedene Identifier, denn wir spielen hier ein bisschen an den Identifiern rum, wir spielen aber am Vektor rum, das sehen wir uns nachher an, ausgabe hier, dann machen wir ein Minus, geben das nochmal aus, jetzt kommt erst einmal Prefix Operator und geben c1 wieder aus, da passiert dann noch nichts ungewöhnliches. Beim Postfix muss man ein bisschen gucken: c2=c1++ bedeutet, dass c2 noch den alten Wert c1 bekommt, aber c1 danach eben erhöht ist, wenn man ihn anschließend ausgibt. Also jetzt schauen wir uns mal das ganze Werk an: Debuggen, Starten ohne Debug, gucken ob das auch so funktioniert. Also hier oben haben wir jetzt unsern Geschwindigkeitvektor 10 0 0 nach -10 -0 - 0 , -0 wird ausgegeben so eine Eigenheit von flood, die sich auch das Vorzeichen merken kann, obwohl das jetzt 0 ist, ist es aber kein Fehler, das ist so völlig in Ordnung. Gut, jetzt geht es auf den Identifier, da sehen wir, hier haben wir mit 2 den Identifier um 1 erhöht, das ist ja noch nichts ungewöhnliches, jetzt geht es aber weiter, hier geben wir jetzt c2 wieder aus und Sie erinnern sich, hier wurde mit dem Postfix gearbeitet, der Postfix der erst danach erhöht, denn der Wert hier ist erst an dieser Stelle des c1, erst hier erhöht worden, wir haben c1++ ja geschrieben und hier unten sieht man es noch. Und das c2 hier, das wurde eben entsprechend nicht verändert.

C++

Machen Sie sich mit den einfachen Grundlagen zu C++ vertraut und lernen Sie anhand zahlreicher Übungs- und Codebeispiele die Klassenkonzepte, Prozeduren und Funktionen kennen.

9 Std. 3 min (143 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Video-Training auf DVD mit Bonusmagazin

+ Tutorial to go: Mit Videos für iPod, iPhone & Co.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!