Partilhar via


Erro do compilador C2594

«Operador» : conversões ambíguas de «tipo1» para «tipo2»

Observações

Nenhuma conversão do tipo1 para o tipo 2 foi mais direta do que qualquer outra. Sugerimos duas soluções possíveis para converter de tipo1 para tipo2. A primeira opção é definir uma conversão direta de tipo1 para tipo2, e a segunda opção é especificar uma sequência de conversões de tipo1 para tipo2.

Exemplo

O exemplo a seguir gera C2594. A resolução sugerida para o erro é uma sequência de conversões:

// 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));
}