#include #include using namespace std; class Base { public: Base() {}; virtual ~Base() {} }; class Derived : public Base { public: Derived() {} virtual ~Derived() {} }; int main(int argc, char** argv) { Base* b; Derived* d = new Derived(); b = d; d = dynamic_cast(b); Base base; Derived derived; Base& br = base; try { Derived& dr = dynamic_cast(br); } catch (bad_cast&) { cout << "Bad cast!\n"; } return (0); }