次の方法で共有


コンパイラ エラー C2683

'cast' : 'type' はポリモーフィックな型ではありません

dynamic_cast を使用して、非ポリモーフィッククラス (仮想関数を持たないクラス) から変換することはできません。

static_cast を使用すると、非ポリモーフィック型の変換を実行できます。 ただし、static_cast では実行時チェックは実行されません。

次の例では 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
}