亚洲色一色噜一噜噜噜_在线国产精品一区二区_91国自产拍 精品_国产伦三级一区二区

<address id="xly8e"><var id="xly8e"><center id="xly8e"></center></var></address>
<kbd id="xly8e"><dl id="xly8e"></dl></kbd>
<bdo id="xly8e"><mark id="xly8e"><legend id="xly8e"></legend></mark></bdo>
  • <span id="xly8e"><delect id="xly8e"></delect></span>

     找回密碼
     注冊(cè)

    QQ登錄

    只需一步,快速開(kāi)始

    兩義性及其支配規(guī)則

    [復(fù)制鏈接]
    1#
    發(fā)表于 2008-9-29 20:24:22 | 只看該作者 |倒序?yàn)g覽 |閱讀模式
    <P>什么是兩義性:當(dāng)一個(gè)派生類(lèi)是<FONT color=#0000ff>多重派生</FONT>也就是由多個(gè)基類(lèi)派生而來(lái)時(shí),假如這些基類(lèi)中的成員有成員名相同的情況,<FONT color=#ff0000>如果使用一個(gè)表達(dá)式引用了這些同名的成員</FONT>,就會(huì)造成無(wú)法確定是引用哪個(gè)基類(lèi)的成員,<FONT color=#ff0000>這種對(duì)基類(lèi)成員的訪(fǎng)問(wèn)就是<FONT color=#0000ff>兩義性</FONT>的</FONT>。</P>
    / {0 Y) D& g& T+ @<P>要避免在派生類(lèi)定義及使用時(shí)出現(xiàn)兩義性的情況,我們可以使用<FONT color=#0000ff>成員名限定</FONT>來(lái)消除兩義性,也就是在成員名前<FONT color=#ff0000>用對(duì)象名及基類(lèi)名來(lái)限定</FONT>,如:</P>! S8 r# F7 q4 \7 w3 u
    <P>obj.A::func( );//A的func( );</P>
    6 V( ~; s) b  c% m0 ?; K" M<P>obj.B::func( );//B的func( );</P>6 f6 e* W+ f3 @  m
    <P><B>C++作用域規(guī)則</B>:就是當(dāng)基類(lèi)中的成員名字在派生類(lèi)中再次聲明,則派生類(lèi)中的名字就屏蔽掉基類(lèi)中相應(yīng)的名字(也就是派生類(lèi)的自定義成員與基類(lèi)成員同名時(shí),派生類(lèi)的成員優(yōu)先)。那么如果要使用被屏蔽的成員呢? 這就要由作用<FONT color=#0000ff>域分辨操作符</FONT>實(shí)現(xiàn)了。它的形式是 <FONT color=#0000ff>類(lèi)名 ::類(lèi)標(biāo)識(shí)符</FONT> 。作用域分辨不僅可以用在<FONT color=#0000ff>類(lèi)</FONT>中,而且可以用在<FONT color=#0000ff>函數(shù)調(diào)用</FONT>時(shí)。</P>) o* x5 Z2 Z& z& `# O* B
    <P><FONT face=黑體>支配規(guī)則</FONT>:課本上的定義是:類(lèi)X中的名字N支配類(lèi)中同名的名字N,是指類(lèi)Y為它的一個(gè)基類(lèi),這稱(chēng)為支配規(guī)則。我們可以理解為一個(gè)派生類(lèi)中的名字將優(yōu)先于與它的基類(lèi)中相同的名字。這時(shí)二者之間不存在兩義性,當(dāng)選擇該名字時(shí),使用支配者(派生類(lèi)中)的名字 。支配規(guī)則是對(duì)名字而言的。 </P>
    * h" O! J& k' j" U2 |6 B! v<P>如果一個(gè)<FONT color=#0000ff>派生類(lèi)</FONT>從<FONT color=#ff0000>多個(gè)基類(lèi)</FONT>中派生,而這些基類(lèi)又有一個(gè)<FONT color=#ff0000>共同的基類(lèi)</FONT>,則在這個(gè)派生類(lèi)中<FONT color=#ff0000>訪(fǎng)問(wèn)這個(gè)共同基類(lèi)</FONT>中的成員時(shí)會(huì)產(chǎn)生<FONT color=#0000ff>兩義性</FONT>。</P>5 D' @* n* b0 r# n2 B. ?
    <P>為了避免兩義性,應(yīng)使用<FONT color=#0000ff>作用域分辨操作符</FONT>來(lái)實(shí)現(xiàn)。一般只有在派生類(lèi)中使用的標(biāo)識(shí)符與基類(lèi)中的標(biāo)識(shí)符時(shí),才有必要使用作用域分辨符進(jìn)行存取。</P>
    您需要登錄后才可以回帖 登錄 | 注冊(cè)

    本版積分規(guī)則

    QQ|本地廣告聯(lián)系: QQ:905790666 TEL:13176190456|Archiver|手機(jī)版|小黑屋|汶上信息港 ( 魯ICP備19052200號(hào)-1 )

    GMT+8, 2025-7-9 17:57

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回復(fù) 返回頂部 返回列表