天天看點

向上轉型的條件

<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

繼續閱讀