Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++ Grundkurs

Explizite Konstruktoren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Verwendung von expliziten Konstruktoren erlaubt keine impliziten Konvertierungen des Compilers.
02:20

Transkript

In dieser Lektion will ich Ihnen "explizite Konstruktoren" vorstellen. "Explizite Konstruktoren" sind Konstruktoren, die durch das Wort "explicit" ausgezeichnet sind. Durch das Wort explicit ist es im Compiler nicht erlaubt, implizit von einem Datentyp in diesen Datentyp hineinzukonvertieren. In diesem Fall kann er nicht implizit von "100" nach "Account" konvertieren. Er kann es nur explizit, indem ich sie explizit anfordere. Was ist der Sinn von "expliziten Konstruktoren"? Ganz einfach, sie verhindern das unerwünschte Konvertieren von Daten. Das zeige ich Ihnen jetzt in der Anwendung. Hier sehen Sie den Datentyp "Account". Der hat einen expliziten Konstruktor. Der Konstruktor erwartet ein "double" und initialisiert damit "balance". Es gibt noch eine Funktion "strange", auf die gehe ich gleich ein. Bis jetzt habe ich sie noch nicht verwendet. Ich habe die Verwendung auskommentiert. Der Datentyp, so wie er hier verwendet wird, verhält sich erwartungsgemäß. Das wird er aber gleich nicht mehr tun. Wie Sie sehen, ich kann "account1" mit "100" initialisieren und es das ist explizit. Das fordere ich hier oben. Weitere Anwendungsfälle wird der Compiler ablehnen. Das zeige ich Ihnen jetzt. Jetzt führe ich das Programm aus, indem ich "Account" einkommentiere und die zwei "Strange"-Funktionen einkommentiere. Was passiert jetzt? Sie sehen, der Compiler verweigert das Erstellen einer ausführbaren Datei. Hier sagt er z.B. Konvertierung von double to Account ist nicht möglich und hier sagt er, dass er nicht von 100 und nicht von "bool" nach "Account" konvertieren kann. Genauso wie wir es erwartet haben. Was passiert aber jetzt, wenn ich den expliziten zum impliziten Konstruktormache? Es tut. Jetzt kann ich sogar das Programm aufrufen. Sie sehen, it works. Das war sicher nicht im Sinne des Erfinders, dass eine "100" und eine "false" implizit nach "Account" konvertiert werden kann. Besonders strange finde ich es bei "false". Weil false im ersten Schritt nach double propagiert wird, und "double" dann dazu verwendet wird, um im "Account" zu initialisieren. In dieser Lektion habe ich Ihnen "explizite Konstruktoren" vorgestellt und insbesondere gezeigt, dass explizite Konstruktoren helfen, unerwünschtes Konvertieren von Daten zu verhindern.

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!