Udostępnij za pomocą


Błąd kompilatora C2683

"cast" : "type" nie jest typem polimorficznym

Uwagi

Nie można użyć dynamic_cast do konwersji z klasy niemorficznej (klasy bez funkcji wirtualnych).

Za pomocą static_cast można wykonywać konwersje typów niemorficznych. static_cast Jednak nie wykonuje sprawdzania czasu wykonywania.

Przykład

Poniższy przykład generuje 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
}