| Defined in header <typeinfo> | ||
|---|---|---|
class bad_cast : public std::exception; |
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), and also from std::use_facet if the requested facet does not exist in the locale.
Inheritance diagram.
Member functions
| constructs a new bad_cast object (public member function) |
Inherited from std::exception
Member functions
| (destructor)
[virtual] | destructs the exception object (virtual public member function of std::exception) |
| [virtual] | returns an explanatory string (virtual public member function of std::exception) |
Example
#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';
}
}Possible output:
Bad dynamic cast
Please login to continue.