Sdílet prostřednictvím


Chyba kompilátoru C2683

'cast' : 'type' není polymorfní typ

Poznámky

Nelze použít dynamic_cast k převodu z jiné než polymorfní třídy (třída bez virtuálních funkcí).

Pomocí static_cast můžete provádět převody jiných než polymorfních typů. static_cast Neprovádí však kontrolu za běhu.

Příklad

Následující příklad 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
}