title: dynamic_cast<> fails but static_cast<> works
body: <p>In my project I have a scenario like suppose:</p>
  
  <ul>
  <li>1) BaseClass is an interface  which derives from a parent class IFlow </li>
  <li>2) ChildClass derives from it ie from Base class</li>
  <li><p>3) In childClass Init function I am using <code>dynamic_cast</code> to cast the objet of IFlow to BaseClass which is as shown below:</p>
  
  <pre><code>void ChildClass::init()
  {    
      IFlow* pFlow = someMethod(); //it returns the IFlow object pointer
  
      //this works for static cast but fails for dynamic cast    
      BaseClass *base =  dynamic_cast&lt;BaseClass*&gt;(pFlow) ;
  } 
  </code></pre></li>
  </ul>
  
  <p>In the above code the 2nd line of <code>dynamic _cast</code> returns zero but if the <code>dynamic_cast</code> is changed to <code>static_cast</code> then the code works as expected . 
  Please advice </p>