Der Autor hat viel über die Unterschiede zwischen dem expliziten Typkonvertierungsoperator und dem C++-Primer-Buch nachgedacht und aussagekräftigere Beispiele bereitgestellt.
Typkonvertierungsoperator
Sehen Sie sich das folgende Beispiel an:
Dies ist der Prototyp einer Pluralklasse , Definiert einen Typkonvertierungsoperator für den Doppeltyp. Damit können Sie es wie folgt verwenden:
Das Ausgabeergebnis ist wie folgt:
Komplex ist nicht Der Ausgabeoperator wird unterstützt, daher versucht der Compiler, c1 in einen Double-Typ zu konvertieren und ihn dann auszugeben. So weit, ist es gut.
Möchten Sie wirklich in Double konvertieren?
Sehen Sie sich den folgenden Code noch einmal an:
If Aus mathematischer Sicht sollte es 2,23606 ausgeben. Tatsächlich kann dieser Code jedoch nicht einmal kompiliert werden. Der Grund dafür ist, dass der Compiler für diesen Code zwei Optionen hat: Eine besteht darin, c1 in double umzuwandeln und dann 1 zu addieren. Die andere besteht darin, 1 in eine komplexe Zahl (1+0i) umzuwandeln und dann eine komplexe Addition durchzuführen.
Benötigen Sie eine Idee von einem Programmierer.
Expliziter Typkonvertierungsoperator
Um Mehrdeutigkeiten zu vermeiden, besteht eine Möglichkeit darin, explizit die implizite doppelte Typkonvertierung zu deaktivieren. Der Code lautet wie folgt:
Da die implizite Typkonvertierung nicht durchgeführt werden kann, führt der folgende Code zu einem Kompilierungsfehler:
Dies stellt kein großes Problem dar, da es schwierig ist zu sagen, ob die Konvertierung in die doppelte Ausgabe korrekt ist oder nicht. Der Code hat die Ausgabefunktion der Pluralform durch Überladen des Ausgabeoperators bereitgestellt.
Die Ausgabe ist wie folgt:
Das ist es, was wir wirklich wollen!
Zusätzlicher Punkt
Wenn Sie möchten, können Sie es auch so kodieren:
Diesen Artikel finden hilfreich? Bitte teilen Sie es mit mehr Leuten.
Verwandte Empfehlungen:
HTML-Operatoren, Typkonvertierung
Benutzerdefinierte implizite und explizite C#-Konvertierung
Das obige ist der detaillierte Inhalt vonAllgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!