std::bad_cast
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <typeinfo>
|
||
| class bad_cast : public std::exception; |
||
dynamic_cast为引用类型时,抛出这种类型的异常运行时检查(例如,因为继承的类型是不相关的)失败.
Original:
An exception of this type is thrown when a dynamic_cast to a reference type fails the run-time check (e.g. because the types are not related by inheritance).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目录 |
[编辑] 成员函数
| 构造一个新的bad_cast对象 Original: constructs a new bad_cast object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (公共成员函数) | |
Inherited from std::exception
Member functions
| [虚拟的] </ SPAN></div></div>
|
解构异常对象 Original: destructs the exception object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (虚拟公有成员函数of std::exception)
|
| [虚拟的] </ SPAN></div></div>
|
返回一个说明字符串 Original: returns an explanatory string The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (虚拟公有成员函数of std::exception)
|
</div>
[编辑] 为例
#include <iostream> #include <typeinfo> struct Foo { virtual void f() {} }; struct Bar { virtual void f() {} }; int main() { Bar b; try { Foo& f = dynamic_cast<Foo&>(b); } catch(const std::bad_cast& e) { std::cout << e.what() << '\n'; } }
Output:
Bad dynamic_cast!
