C++ Grundkurs

Schlüsselwort auto

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der Compiler verfügt über die Fähigkeit, den vorliegenden Datentyp automatisch zu erkennen. Diese Funktion nützt ein Programmierer mit Hilfe des Schlüsselworts auto.
04:23

Transkript

In dieser Lektion stelle ich die automatische Typableitung mit auto vor. Die automatische Typableitung mit auto ist ein neues Feature in C++ und ich vermute für viele das Lieblingsfeature. Um was geht es? Wenn Sie den Typ einer Variable bestimmen wollen, müssen Sie den nicht mehr explizit hinschreiben, sondern der Compiler bestimmt ihn für Sie. Hier habe ich einen Initialisierer 3.14 und dadurch, dass ich den myDouble zuweise und hier das Schlüsselwort auto verwende, wird myDouble automatisch zum Typ double. Das ist unwahrscheinlich praktisch in komplexen Templateausdrücken. Es gibt eine kleine Besonderheit. Den äußersten const/volatile-Qualifier auf der rechten Seite, der wird auf der linken Seite ignoriert. Wenn Sie das genau anschauen, ist es ein Feature, das viele aus den dynamisch typisierten Programmiersprachen Python und Perl kennen. D. h., der Compiler bestimmt für Sie den Typ, aber nicht zur Laufzeit wie bei dynamisch typisierten Programmiersprachen, sondern zur Kompilierzeit. Was ist das Praktische daran? Der richtige Typ wird immer ermittelt. Sie können gar keine Fehler machen, denn der Compiler weiß genau, was für einen Typ er da hat und gibt Ihnen den richtigen Typ - in diesem Fall double - zurück. Ein zweiter großer Vorteil ist, da Sie - um myDouble zu initialisieren - rechts einen Initialisierer hinschreiben müssen, denn aus diesen Initialisierer leitet der Compiler seinen Typ ab, kann es gar nicht passieren, dass Sie vergessen myDouble zu initialisieren. Anders ausgedrückt, Sie müssen Variablen nicht initialisieren. Wie einfach und angenehm das anzuwenden ist, zeige ich Ihnen gerne am Beispiel. Hier oben habe ich eine ganz simple Funktion definiert. Die Funktion heißt func, nimmt ein int an, gibt ein int zurück und der der int-Wert ist tatsächlich 2011. Jetzt zeige ich Ihnen ein paar Anwendungen von auto. Hier deklariere ich und definiere ich gleich eine Variable i vom Typ int, da 5 selbst ein int ist. Das hier wird eine Referenz auf int. Das wird ein Pointer auf int. Das hier wird ein constInt, und das hier wird ein staticInt. Weiter geht's. Wenn ich hier einen Vektor habe myVec, dann kann ich einen neuen Vektor dadurch erzeugen, dass ich einfach sage: auto vec = myVec, und damit ist vec ein Vektor. Wenn ich hier noch eine Referenz hinzufüge, wird es zur Referenz auf einen Vektor. Weiter geht es hier mit myData. myData ist ein Array von ints der Länge 10. Durch auto v1 erhalte ich einen Pointer auf dieses Array. Durch auto& v2 erhalte ich diesmal aber eine Referenz. Das Gleiche für Funktionen. Wenn ich einen Funktionspointer deklarieren will, sage ich einfach auto myFunc = func. Dann hat myFunc genau die Signatur von func hier oben. D. h., er nimmt ein int an, gibt ein int zurück, und das war es für myFunc. Das Gleiche mache ich hier nochmal, aber diesmal für eine Referenz und schon habe ich auch einen Funktionspointer. Was ich jetzt noch machen kann, ist die Funktionspointer anzuwenden. Dann bereite ich aber erst etwas vor. Hier erkläre ich einen Funktionspointer myAdd1 auf die klassische Art und Weise. myAdd1 ist ein Funktionspointer, der zwei inst annimmt und ein int zurückgibt. Jetzt brauche ich noch eine Funktion. In diesem Fall nehme ich eine Lambda-Funktion. Das ist eine Lambda-Funktion, sprich: einen anonyme Funktion, eine Funktion ohne Namen, die wird durch die eckige Klammer eingeleitet. Diese Funktion erwartet zwei ints - a und b - und gibt die Summe zurück. Diesen nackten Funktionskörper kann ich verwenden, um myAdd1 damit zu initialisieren. Da das ziemlich umständlich ist, verwende ich anstatt der aufwendigen Syntax hier oben, diese einfach unten mit auto, und ich bekomme das gleiche Ergebnis heraus. Ich habe einen Funktionspointer myAdd2, der auf die Funktion verweist. In diesem Fall auch die gleiche Lambda-Funktion. Jetzt wende ich die Funktionspointer an: myAdd1, myAdd2, und Sie sehen, die Arithmetik passt. 1 + 2 = 3. In dieser Lektion habe ich Ihnen die automatische Typableitung mit auto vorgestellt. Das Feature aus modernen C++, das wohl am häufigsten verwendet werden wird.

C++ Grundkurs

Steigen Sie in die mächtige Programmiersprache C++ ein und lernen Sie dabei alle wichtigen Funktionen mit Anwendungsbeispielen kennen.

8 Std. 14 min (147 Videos)
Derzeit sind keine Feedbacks vorhanden...

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!