天天看点

向上转型的条件

<code>#include &lt;iostream&gt;</code>

<code>using</code> <code>namespace</code> <code>std;</code>

<code>class</code> <code>Bass{};</code>

<code>class</code> <code>Derived:</code><code>public</code> <code>Bass{};</code>

<code>//这里如果为protected或者是private继承的话,则无法向上构造</code>

<code>int</code> <code>main(</code><code>void</code><code>){</code>

<code>    </code><code>Derived d;</code>

<code>    </code><code>Bass* pb = &amp;d;</code><code>//向上构造(安全的)</code>

<code>    </code><code>cout &lt;&lt; pb &lt;&lt; </code><code>','</code> <code>&lt;&lt; &amp;d &lt;&lt; endl;</code><code>//两个地址是一样的</code>

<code>    </code><code>//Base* pb = static_cast&lt;Base*&gt;(&amp;d);静态类型转化</code>

<code>    </code><code>return</code> <code>0;</code>

<code>}</code>

本文转自神ge 51CTO博客,原文链接:http://blog.51cto.com/12218412/1867087

继续阅读