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

C++

Parameterübergabe mit Strukturen/Rückgabe von Werten mit Strukturen

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Verwenden Sie structs auch bei der Übergabe an Funktionen! Dieser Film zeigt die Verwendung von Strukturen, die bei Funktionsaufrufen übergeben werden. Sie sehen auch, wie Strukturen als Rückgabewerte funktionieren.

Transkript

Möchte Ihnen zeigen, wie man Strukturen als Parameter verwendet oder als Rückgabewert bei Funktionen, und das sieht jetzt wie folgt aus. Ich habe hier erst mal wieder die Struktur player_str definiert, struct, und hier definiere ich einfach den freien Namen und auch allespieler 8 zum Beispiel für die Elemente, die ich da brauche, dass da man nun ein bisschen spielen könnte damit, und jetzt möchte ich mir diese Routine hier gleich mal selber schreiben, eine Initialisierungsroutine, die soll einfach nur den ID übergeben, und da kann ich jetzt hier zum Beispiel direkt player_str ply, also einen Pointer übergeben, kann ich jetzt hier natürlich ply und auf die Struktur zugreifen, druck mal jetzt hier mit Bindestrich-Pfeil (-). dann kann ich jetzt zum Beispiel sagen, na gut, highscore übergeben wir nicht als Parameter, schreiben wir also 0 rein. Wir übergeben auch nicht den Namen spielername schreibe ich jetzt hier gleich hin einfach ein Minuszeichen ("-") jetzt mal, und was ich aber hier übergebe, ist der ID, also playerid = id, und damit habe ich hier meine Routine fertig. Wenn ich die dann aufrufe, kann ich hier einfach die Struktur angeben, den Pointer auf die Struktur, auf die Datenelemente und hinten als Parameter den ID, den ich zuweisen möchte. Eine andere Variante, das zu machen, ist so. Ich definiere hier einen do_setplayer mit id als Parameter, diesmal nicht mit der anderen Struktur, sondern hier als Rückgabewert die Playerstruktur. Dann muss ich natürlich jetzt in temp erstmal als temporäre Variable anlegen, temp ist also wieder meine Datenstruktur mit den Elementen, und ich kann jetzt hier temp.highscore=0 setzen, playid = id, und spielername hier zum Beispiel unknown. Und dann mit return (temp) übergebe ich die ganze Datenstruktur, nicht etwa den Pointer, sondern wirklich die gesamte Struktur. Und jetzt kann ich mal ins Hauptprogramm kommen. Ich mache das hiermal gerade eine kleine Kopie, wir haben eine zweite Routine, die wir verwenden können, die nehme ich hier mal für den Parameter 1 her, die wir zuerst genommen haben, nämlich die Routine mit dem Parameter, ich schreibe das aber erst mal so. Und wenn wir hier mal spicken müssen, die hieß also do_initplayer, dann rufe ich hier vorne einfach auf do_initplayer, Klammer auf und allespieler von 1 die Adresse, dann muss ich ja einen Pointer übergeben, und den Identifier 13 von mir aus, kann man einfach mal so. So, prima! Hier mache ich das mit dem do_setplayer, finde ich, sieht ein bisschen eleganter aus, kann man also machen, wie man es gern möchte, so hier die Geschichte, und wir geben uns jetzt am Schluss mal hier noch die Werte aus, den player [0], allespieler [0] und allespieler [1], den Spielernamen kann ich hier ausgeben, und das hat ich eigentlich vergessen es ist vielleicht ganz gut, wenn man hier noch von 0, muss ich natürlich hier wieder eintippen 0, so, Punkt (.), und da möchte ich doch gerne den playerid noch eingeben, weil das wäre ja eigentlich mal der Parameter, dem wir auch Unterprogramm übergeben. Dann ist es natürlich gut, wenn wir uns das mal zur Kontrolle ausgeben lassen. Das Ganze kopiere ich mir jetzt mal noch hier nach unten für den Index 1, und jetzt habe ich hier unten meine Ausgabe. Für die Ausgabe könnte man sich natürlich, wenn das hier so sieht, auch noch eine Routine basteln und das dann damit gestalten, so jetzt machen wir das mal hier. Und was habe ich jetzt hier unknown 1, das war der Spieler 0, da habe ich ja den id1 initialisiert und hier 13 das war der andere, aber nur mit dem Minuszeichen, weil hier oben habe ich nur ein Minuszeichen als default von Spielernamen angegebnen. Und Ihre Aufgaben, wenn Sie jetzt mal daran umbauen wollen, sind hier mal weiter Routinen zu schreiben, nämlich zum Beispiel eine,mit der man hier als Parameter einen Spielernamen übergibt und denn an ihr zuweist, und sich das hier oben unten auch zur Kontrolle dann entsprechend wieder ausgibt und eine weiter Routine dieses nach dieser Methode hier macht. Da muss übrigens aufpassen. Das ist zur Initialisierung eigentlich ganz praktisch, aber nicht wenn man den Wert nachträglich verändern will, weil es wird ja hier eine Datenstruktur komplett zurückgeliefert für alle Parameter, und die überschreibt natürlich die bestehende. Also, sinn macht das hier entweder zur Initialisierung oder wenn man den kompletten Datensatz ändern will, nicht aber, wenn ich nur einzelnen verändere, wobei da ja eine direkte Zuweisung auch noch eine Möglichkeit ist.

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!