title: Why Base-to-Derived Dynamic Casting is Only Allowed for Polymorphic Classes
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/4227328/faq-why-does-dynamic-cast-only-work-if-a-class-has-at-least-1-virtual-method">FAQ: Why does dynamic_cast only work if a class has at least 1 virtual method?</a>  </p>
  </blockquote>
  
  
  
  <p>I have read that in C++, performing a dynamic cast down the hierarchy of a set of classes, the cast is allowed only in a situation where the classes are polymorphic, such as when the base class is having a virtual function, etc. What is the reason for this limitation? Is it more 'safe' to have a pure virtual function in place of the normal virtual function in the base class?</p>
  
  <p>Thank You!</p>