Freigeben über


Konvertierungen

Objekte eines angegebenen Klassentyps können konvertiert werden in Objekte eines anderen Typs.Dies geschieht, indem ein Objekt des Typs Zielklassen klassentyp Quelle des erstellt und das Ergebnis dem Zielobjekt kopiert.Dieser Vorgang wird die Konvertierung vom Konstruktor aufgerufen.Objekte können durch vom Benutzer bereitgestellte Konvertierungsfunktionen ebenfalls konvertiert werden.

Wenn die standardmäßige konvertierungen (beschrieben in Standardwert konvertierungen) nicht von einem angegebenen Typ in einem Klassentyp vollständig konvertieren können, kann der Compiler benutzerdefinierte Konvertierungen aus, um dem Auftrag abgeschlossen.Zusätzlich zu den expliziten Typkonvertierungen finden statt, wenn Konvertierungen:

  • Ein Initialisiererausdruck ist nicht der gleiche Typ, der das Objekt initialisiert wird.

  • Der Typ des Arguments wird in einem Funktionsaufruf stimmt nicht mit dem Typ des angegebenen Arguments in der Funktionsdeklaration ab.

  • Der Typ des Objekts, das von einer Funktion zurückgegeben wird, stimmt nicht mit dem Rückgabetyp ab, der in der Funktionsdeklaration angegeben wird.

  • Zwei Ausdrücke operanden müssen vom gleichen Typ sein.

  • Ein Ausdruck, der eine Iteration oder eine Selektionsangabe steuert, erfordert einen anderen Typ der angegebenen dem.

Eine benutzerdefinierte Konvertierung wird nur angewendet, wenn er eindeutig ist. andernfalls wird eine Fehlermeldung generiert.Mehrdeutigkeit wird zum Zeitpunkt der Verwendung überprüft.Daher wenn die Funktionen, die Mehrdeutigkeit führen, nicht verwendet werden, kann eine Klasse mit möglichen Mehrdeutigkeiten festgelegt und kein Fehler generiert.Obwohl es viele Situationen vorliegt, in denen Mehrdeutigkeiten auftreten, werden diese zwei vorangestellte Ursachen von Mehrdeutigkeiten:

  • Ein Klassentyp mit der Mehrfachvererbung abgeleitet, und er ist unklar, die Basisklasse, um die Konvertierung auszuwählen (siehe Mehrdeutigkeit).

  • Ein Operator die explizite Typkonvertierung und ein Konstruktor für die gleiche Konvertierung vorhanden sind (siehe Konvertierungsfunktionen).

befolgen und Konstruktor durch die Konvertierung von Konvertierung von Zugriffssteuerungsregeln Konvertierungsfunktionen wie in Member-ACCESS-Steuerelementbeschrieben.Zugriffssteuerung wird getestet, erst nach der Konvertierung gefunden wird, um eindeutig sein.

Weitere Informationen finden Sie unter Konvertierungs-Konstruktoren.

Siehe auch

Referenz

Spezielle Memberfunktionen (C++)