Heim > Backend-Entwicklung > C#.Net-Tutorial > Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

php是最好的语言
Freigeben: 2018-07-26 13:54:49
Original
2401 Leute haben es durchsucht

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:

Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

Dies ist der Prototyp einer Pluralklasse , Definiert einen Typkonvertierungsoperator für den Doppeltyp. Damit können Sie es wie folgt verwenden:

Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

Das Ausgabeergebnis ist wie folgt:

Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

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:

Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

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:

Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

Da die implizite Typkonvertierung nicht durchgeführt werden kann, führt der folgende Code zu einem Kompilierungsfehler:

Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

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:

Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

Das ist es, was wir wirklich wollen!

Zusätzlicher Punkt

Wenn Sie möchten, können Sie es auch so kodieren:

Allgemeine C++11-Syntax – spezifische Verwendung des expliziten Typkonvertierungsoperators

Diesen Artikel finden hilfreich? Bitte teilen Sie es mit mehr Leuten.

Verwandte Empfehlungen:

HTML-Operatoren, Typkonvertierung

Benutzerdefinierte implizite und explizite C#-Konvertierung

C-Sprach-Tutorial

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage