class
std::bad_cast
<typeinfo>
Exception thrown on failure to dynamic cast
|  |
bad_cast |
Type of the exceptions thrown by
dynamic_cast when they fail the run-time check performed on references to polymorphic class types.
The run-time check fails if the object would be an incomplete object of the destination type.
Its member
what returns a
null-terminated character sequence identifying the exception.
Some functions in the standard library may also throw this exception to signal a type-casting error.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
// bad_cast example
#include <iostream>
#include <typeinfo>
using namespace std;
class Base {virtual void Member(){}};
class Derived : Base {};
int main () {
try
{
Base b;
Derived& rd = dynamic_cast<Derived&>(b);
}
catch (bad_cast& bc)
{
cerr << "bad_cast caught: " << bc.what() << endl;
}
return 0;
}
|
Possible output:
bad_cast caught: St8bad_cast
|
See also
- exception
- Standard exception class (class)