#include <typeinfo>
#include <iostream>
using std::cout;
using std::endl;
class Base {
public:
Base() {};
virtual ~Base() {}
};
class Derived : public Base {
public:
Derived() {}
virtual ~Derived() {}
};
int main()
{
Base base;
Derived derived;
Base &bref = base;
try {
Derived &dr = dynamic_cast<Derived&>(bref);
}
catch (const std::bad_cast& e)
{
std::cout << e.what() << endl;
}
return 0;
}
/*
run:
Bad dynamic_cast!
*/