std::bad_cast
STD:不好[医]铸造
Defined in header | | |
---|---|---|
class bad_cast : public std::exception; | | |
对象时引发此类型的异常。dynamic_cast
对于引用类型,运行时检查%28e.g失败。因为类型与继承%29无关,而且std::use_facet
如果请求的方面不存在于区域设置中。
二次
二次
继承图
成员函数
(constructor) | constructs a new bad_cast object (public member function) |
---|
继承自STD:例外
成员函数
(destructor) virtual | destructs the exception object (virtual public member function of std::exception) |
---|---|
what virtual | returns an explanatory string (virtual public member function of 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
二次
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。