polymorphic downcasting for derived classes with additional members
<p>Consider a class <code>Base</code> with virtual functions and a class <code>Derived</code> from Base implementing the virtual functions, but with few additional private members.
Can we safely downcast the <code>Base*</code> pointer to <code>Derived*</code> pointer?</p>

<pre><code>Base* base = new Derived();

Derived* derived = dynamic_cast&lt;Derived*&gt;(base); // Is this valid?
</code></pre>

<p>What if derived class contains an additional private member int _derivedNum apart from implementation of virtual functions in the base class? Can I still use derived->_derivedNum to access the private member of the derived class after downcasting the base class pointer?</p>
