Teilen über


Compilerfehler C2594

'operator' : mehrdeutige Konvertierungen von 'type1' in 'type2'

Bemerkungen

Keine Konvertierung von Typ1 in Typ2 war direkter als jede andere. Wir schlagen zwei mögliche Lösungen zum Konvertieren von Typ1 in Typ2 vor. Die erste Option besteht darin, eine direkte Konvertierung von Typ1 in Typ2 zu definieren, und die zweite Option besteht darin, eine Abfolge von Konvertierungen von Typ1 in Typ2 anzugeben.

Beispiel

Im folgenden Beispiel wird C2594 generiert. Die vorgeschlagene Lösung für den Fehler ist eine Abfolge von Konvertierungen:

// C2594.cpp
// compile with: /c
struct A{};
struct I1 : A {};
struct I2 : A {};
struct D : I1, I2 {};

A *f (D *p) {
   return (A*) (p);    // C2594

// try the following line instead
// return static_cast<A *>(static_cast<I1 *>(p));
}