bad_cast Exception

The dynamic_cast operator throws a bad_cast exception as the result of a failed cast to a reference type. The interface for bad_cast is:

class bad_cast : public logic {
public:
   bad_cast(const __exString& what_arg) : logic(what_arg) {}
   void raise() { handle_raise(); throw *this; }
   // virtual __exString what() const;   //inherited
};