Compartilhar via


Erro do Compilador C2683

'cast' : 'type' não é um tipo polimórfico

Você não pode usar dynamic_cast para converter de uma classe não polimórfica (uma classe sem funções virtuais).

Você pode usar static_cast para executar conversões de tipos não polimórficos. No entanto, static_cast não executa uma verificação em tempo de execução.

O seguinte exemplo gera o C2683:

// C2683.cpp
// compile with: /c
class B { };
class D : public B { };

void f(B* pb) {
   D* pd1 = dynamic_cast<D*>(pb);  // C2683
   D* pd1 = static_cast<D*>(pb);   // OK
}