std::bad_cast
来自cppreference.com
定义于头文件 <typeinfo>
|
||
class bad_cast : public std::exception; |
||
在 dynamic_cast 对引用类型运行时检查失败(例如因为类型并非以继承关联)时,还有若请求的平面不存在于本地环境时从 std::use_facet 抛出此类型异常。
继承图
成员函数
构造新的 bad_cast 对象 (公开成员函数) |
继承自 std::exception
成员函数
[虚] |
析构该异常对象 ( std::exception 的虚公开成员函数) |
[虚] |
返回解释性字符串 ( std::exception 的虚公开成员函数) |
示例
运行此代码
#include <iostream> #include <typeinfo> struct Foo { virtual ~Foo() {} }; struct Bar { virtual ~Bar() {} }; int main() { Bar b; try { Foo& f = dynamic_cast<Foo&>(b); } catch(const std::bad_cast& e) { std::cout << e.what() << '\n'; } }
可能的输出:
Bad dynamic cast