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

C++

This

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Lernen Sie die Verwendung des Schlüsselworts "this" und seine Vorteile kennen. Der Trainer zeigt Ihnen anhand eines Beispiels, wozu Sie "this" brauchen.

Transkript

Ein ganz wichtiges Element im Zusammenhang mir der Klassenprogrammierung ist this. This wie das und das zeige ich Ihnen mal wie man das anwendet. This ist nämlich ein Pointer, der automatisch auf das eigene Objekt zeigt. Das braucht man nicht häufig, aber wenn man es braucht hat man meistens keine andere Möglichkeit es zu umgehen. Also wir haben hier mal eine einfache Klasse mycls genannt mit einem Integer i1 und public haben wir ein Konstrucktor, der setzt die 1 auf 0. Das ist kein Problem. Jetzt kann ich hier mal was ganz einfaches machen. Ich mache ein Befehl setzte (int i1). Nun habe ich hier unglücklicherweise den gleichen Namen gewählt wie innen auch verwendet wir und wenn ich jetzt i1 = i1 schreibe habe ich Pech, weil das ist dominant und ich würde nichts ändern. hier muss ich this i1 hinschreiben. Ich kann hier zum Beispiel auch mit dem Fall anschauen, welche Elemente habe ich überhaupt, das ist auch nochmal ganz praktisch und kann es dann zuweisen, nämlich von i1 diesen Parameter auf this i1 hier dem internen Wert. Also das ist eine Anwendung. Die andere Anwendung ist zum Beispiel, wenn ich ein Bublikat erzeigen will vom Objekt und es als Rückgabewert übergeben möchte, das kann ich machen, nämlich hier mycls als Rückgabeparameter, mycls hier definiere. Die Methode heißt dublicate und sie macht ein Return von *this. This ist hier der Pointer auf das Element, wenn ich nur einen Verweis haben möchte, dann mache ich das ohne dem Stern, da müssen wir aber hier auch entsprechend dann wieder einen Stern angeben oder ich muss hier den Stern Schreiben, ich ja jetzt eine Kopie davon erzeuge, nämlich den Inhalt des Pointers und den übergebe ich mit Return und hier haben wir noch eine Ausgabe, damit wir das Ganze kontrollieren können. Was mache ich jetzt? Ich definiere hier oben mal mycls c1 und c2, setze c1 auf 123, also da i1 was internes und gebe das aus. Nun schreiben wir c2 = c1 dublicate und dann geben wir c2 aus und schauen mal was bei c2 als Wert rauskommt. Nun, noch nicht viel, da haben wir wieder einen kleinen Tippfehler. Schauen wir mal. rdkclass.h brauche ich an dieser Stelle natürlich nicht, weil wir hier keine eigene Klasse definiert haben. Was war hier noch mal [unverständlich]. Jetzt starte ich das Ganze nochmal schenll. So funktioniert das und da habe ich 123,123. Na ja jetzt können wir das auch bisschen ergänzen. Ich möchte jetzt hier nochmal, damit Sie sehen, dass es auch wirklich ein Dublikat ist, hier c1 auf 456 setzten und dann geben wir hier einmal das c1 aus und dann geben wir nochmal das c2 aus, damit wir sehen, dass die 2 sich dadurch nicht ändert, also eine Kopie des Objektes erstellt wurde und das sehen Sie hier, da ist 123 drin und hier 456. Ich habe also wirklich zwei verschiedene Objekte. Wie gesagt ich könnte das gleiche jetzt natürlich auch mit einem Pointer machen . Wir können ja hier spaßhalber so was mal einbauen. Wir machen jetzt hier eigentlich genau das gleiche. Ich definiere jetzt hier einfach eine neue Methode. Ich mache jetzt hier kein dublicate, sondern Verweis und deklariere hier ein return this und ich muss natürlich jetz hier den Rückgabewert entsprechend angebn. So und jetzt schauen wir mal, ob das auch wirklich funktioniert, was ich mir da hier vorgestelt habe. Und das nennen wir jetzt hier als *pc2 ein Pointer, von mir aus auf c2 und hier haben wir pc2=c1. und da habe ich jetzt hier unten noch keine neue Definition. Ich möchte mal schauen, ob er das jetzt macht. Dublicate, ausweise, verweis jetzt macht er das, nachdem ich es mal abgesafet habe. So, und dann können wir hier ein Stärn oder pc2, so geht es auch, ausgabe machen, weil ich hier ja nur ein Pointer habe. Schauen uns mal an, da müsste dann der Wert von c1 auch wieder entsprechend rauskommen. Haben jetzt aber hier leider noch ein kleinen Fehler eingebaut. Schauen wir mal was uns jetzt hier passiert ist. Ich glaube, dass ich hier in der Deklaration hier im Moment Mist gemacht habe. Ja mal schauen, da müssen wir zum ersten Fehler zurückgehen. Das schaut doch eigetlich alles relativ gut aus, bis auf die Geschichte, dass man das normalerweise so schreiben muss. Jetzt probieren wir das mal aus und jetzt funktioniert das auch. Und hier habe ich jetzt genau das c1 als Ergebnis. Also hier ein bisschen aufpassen, ich falle da auch immer gerne selber drauf rein, weil das so ungewöhnlich ausschaut ist es natürlich: Name der Klasse, Stern Klassenname Aber Sie haben schon gesehen bei den Fehlermeldungen, die können teilweise sehr verwirrend sein. Es empfiehlt sich dann ganz sorgfälltig beim ersten Fehler anzufange. Nachdem ich hier ungefähr wusste woran es liegt, natürlich im vorhinein war es ja klar. Für mich jedenfalls, habe ich es auch schnell gefunden, aber Sie können unter Umständen selber schonmal eine ganze Weile suchen, um so ein Fehler zu finden, deshalb zeige ich Ihnen das auch immer ganz gerne mal mit Fehlern beziehungsweise korrigiere Sie hier, nicht bei der Moderation, mache das lieber im Bild, damit Sie auch was davon haben bei dieser Fehlersuche mit der man ja wirklich sehr häufig zu kämpfen hat.

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!