Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++

Shift-Overload

Testen Sie unsere 2019 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
In diesem Film zeigt der Trainer, wie das Überladen des Shift-Operators funktioniert.

Transkript

Für allen Ausgaben mit cin und mit cout, haben wir ja den sogenannten Shift-Operator verwendet, selbst den kann man überladen und das muss man auch, wenn man einen direkt in die Ausgabe reinschreiben will, ohne eine spezielle Ausgabe-Operation, sonst weiß ja das cout oder cin gar nicht, was es damit tun will oder eine Angabe mit cin eben entsprechend. Das machen wir jetzt mal mit mystring. Wir haben hier wieder unseren mystring mit einem Charachter Pointer und der Länge dem Konstruktor, das ist jetzt hier recht kompakt, der hat auch noch eine eigene Ausgabe, die bräuchten wir jetzt dann aber nicht mehr, aber wir deklarieren jetzt hier zwei friends weil ich das hier extern verwenden möchte ein friend ostream, das ist der ausgabe stream, das muss man so machen, damit das mit dem cout zusammen funktioniert. Wichtig ist hier jetzt aber der operator<< der Schiebeoperator mit ostream & co als Parameter wiederum und const mystring & s1, da wird dann eigentlich mein string übergeben, also mystring ist ja der Klassenname. Das Ganze als Referenz und wenn wir den input auch überladen wollen, müssen wir das such hier machen, mit friend istream als Referenz- Operator nach rechts laufend, aslo Zeichen istream, hier wieder als Parameter cimystring & s1. Also man muss es so schreiben, so ist es festgelegt von C++, damit es überhaupt funktioniert und jetzt definieren wir mal die beiden Funktionen, den Operator links-links, das ist eigentlich ganz einfach. Ich möchte den String ausgeben s1.ptr und da kann ich einfach auf den Ausgabestream zurückgreifen cout zum Beispiel, es geht aber auch noch mit anderen Streams nachher, wenn man das so mal programmiert hat, also co nach links geschoben, sozusagen rausgeben und gleichzeitig muss man aber das Ergebnis co noch als Wert wieder zurückübergeben. Das geht hier sozusagen einmal hier im Kreis rum, damit das Ganze kaskadierbar ist. Beim Input Stream ist es eigentlich ähnlich, ein bisschen aufwendiger, weil hier muss ich ja was einlesen und wie ich das einlese, das bleibt ja jetzt mir überlassen. Mit ci.getline machen wir das aber, weil ich nehem den Input Stream und getline ist ja eine Funktion, die ich da verwenden kann in einem Buffer, prüfe nach, ob mein Pointer schon belegt war, gibt den eventuell frei und belege dann Länge und Pointer wieder neu und kopiere einfach hier die entsprechenden Daten. Und das Ganze testen wir hier unten, das ist recht schlicht, initialisiren das Ganze mal mit Hallo Welt Ausgabe, gebe das aus, jetzt kann man einfach sein Objekt hier so schön reinschreiben, ohne irgendwas Besonderes und es weiß genau was zu tun ist. Mit cin kann ich ungekehrt einen neuen Wert wieder einlesen und das Ganze auch wieder ausgeben. Und das probieren wir jetzt gleich mal aus. Hallo Welt Ausgabe kommt schon, jetzt wartet er auch hier auf eine Angabe, test eingabe mit getline, wenn ich return drücke, macht er einfach hier ein Echo davon und ich habe hier mein entsprechendes s1 überschrieben und es kann es auch direkt wieder ausgeben.

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!