最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

class
<typeinfo>

# std::bad_cast

    namespace std {
      class bad_cast : public exception;
    }

## 概要

`bad_cast`クラスは、 `dynamic_cast`による実行時型チェックに失敗して投げられる例外の型である。オブジェクトが不完全の場合、実行時チェックは失敗する。標準ライブラリのいくつかの実装は、型キャストのエラーを示すために、この例外を投げる可能性がある。

## メンバ関数

名前 | 説明 | 対応バージョン
--- | --- | ---
(constructor) | コンストラクタ |
(destructor) | デストラクタ |
`operator=` | 代入演算子 |
`what` | エラー理由を取得する |

### 例

    #include <iostream>
    #include <typeinfo>

    class Base { virtual void f() {} };
    class Derived : Base {};

    int main ()
    {
      try {
        Base b;
        Derived& d = dynamic_cast<Derived&>(b);
      }
      catch (std::bad_cast& e) {
        std::cerr << e.what() << std::endl;
      }
    }

### 出力例

    std::bad_cast

## 参照