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. |
| Заголовочный файл <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. (public функция-член) | |
Унаследован от std::exception
Member functions
| [virtual] |
разрушает объект исключения 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. (virtual public std::exception функция-член)
|
| [virtual] |
возвращает пояснительной строкой 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. (virtual public std::exception функция-член)
|
[править] Пример
#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'; } }
Вывод:
Bad dynamic_cast!
