C++

Klassenzuweisung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Auch den Zuweisungsoperator können Sie überladen. Erkennen Sie die Möglichkeiten und bekommen Sie Tipps vom Trainer.

Transkript

Dann haben wir plus gleich überladen, dann kann man natürlich auch das normal ist glech, also das Zuweisungssymbol überladen, den Zuweisungsoperator. Beim Zuweisen muss man auch ein bisschen aufpassen. Wenn man dynamische Statenstrukturen hat ist es sogar notwendig den unter Umständen neu zu definieren und nicht den Default-Konstruktor, den es nämlich auch noch gibt zu verwenden beim Kopieren von Objekten, sonst werden nämlich einfach nur die Pointer kopiert und nicht die Inhalte der Pointer. Da muss man ein bisschen aufpassen, das kann beim Freigeben des Speichers Ärger geben. Also definieren wir hier mal eine Klasse mystring. Die hat jetzt die privaten Members, character pointer und eine länge dafür. Soll also eine kleine selbst gebaute string-Bibliothek werden vielleicht. Dann habe ich einen Konstruktor, der das einfach mal initialisiert auf 0 und natürlich einen Konstruktor mit char *str als Parameter, holt sich hier die Länge des String, alloziert den Pointer mit dem entsprechenden Speicherbereich, plus 1 nicht vergessen wegen der 0 und kopiert den Datenbereich, hier die string, da worauf das String zeigt, auch noch hier in die lokalen Datenstrukturen. Dann haben wir ein Destruktor, das ist jetzt hier auch natürlich wichtig, darf man nie vergessen, wenn Pointer = NUll ist, dann soll man entsprechend wieder freigeben und eine ausgabe. Damit habe ich eigentich jetzt hier schonmal alles wichtige definiert und jetzt brauche ich natürlich noch meinen Zuweisungsoperator. Der Zuweisungsoperator liefert eine Referenz zurück auf einen String, das ist wichtig, damit ich es auch machen kann und hat als Parameter ebenfalls eine Referenz, das wird immer gemacht, wenn man hier solche += und= überlädt. Jetzt gibt es hier noch ein Sonderfall, den man unbedingt abprüfen sollte: Wenn this == & s ist, also eine Zuweisung auf sich selbst, dann kann man einfach mit *this zurückkehren, das Objekt selber wieder übergeben, dann muss man jetzt hin und her kopieren, das sollte man auch immer abprüfen, sonst gibt es unter Umständen in diesem Sonderfall nämlich Probleme beim Freigeben der Speicher. So, jetzt da gehen wir zum nächsten Ding, wenn ptr != NULL ist, also wenn überhaut irgendwas über definiert war schonmal vorher, dann gebe ich das jetzt hier frei. Und dann kann ich natürlich das Neue wieder kopieren, die Lenge kann ich übernehmen, den Pointer alloziere ich hier entsprechend und kopiere das Ganze und gebe *this, ist ja in der Referenz, also es übergibt eigentlich nur die Adresse dieses Stärn und nicht Stärn schreiberei, muss man ein bisschen aufpassen, dass man da nicht durcheinander kommt, aber so muss man es hier eben scheiben, damit es funktioniert und im Hauptprogramm können wir es jetzt austesten. Wir definieren hier mal: ein String ist eins mit Hallo, einen zweiten der ist jetzt Null und einen dritten mit nocheiner und hier mache ich die eigentliche Operation. Ohne overload würde es bei der Freigabe einen Fehler geben. Hier ist s2.ausgabe (), s3.ausgabe (), dann schauen wir uns das Ganze nochmal an und s3=s2 können wir natürlich auch noch machen, dann geben wir s3 nochmal aus und sehen, dass es nachher auch durch den anderen String überschreieben wurde. und da haben wir eigentlich schon alles, was wir brauchen: Hallo, nocheiner und Hallo. Das Hallo sehen wir jetzt hier an der Stelle natürlich, weil es 2 hier ausgegeben wird das wurde ja jetzt hier gerade mit s1 überschreieben und initialisiert und so weiter, dann kommt s3, da steht nocheiner, nach der Zuweisung steht entsprechend hier Hallo.

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!