• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C++ Programmer's Cookbook

            {C++ 基礎(chǔ)} {C++ 高級(jí)} {C#界面,C++核心算法} {設(shè)計(jì)模式} {C#基礎(chǔ)}

            重載覆蓋隱藏 -------多重繼承的成員調(diào)用

             


            成員函數(shù)被重載的特征:  //////////////////基類中
            (1)相同的范圍(在同一個(gè)類中); 
            (2)函數(shù)名字相同; 
            (3)參數(shù)不同; 
            (4)virtual關(guān)鍵字可有可無(wú)。 


            覆蓋是指派生類函數(shù)覆蓋基類函數(shù),特征是: /////////////基類與子類的關(guān)系
            (1)不同的范圍(分別位于派生類與基類); 
            (2)函數(shù)名字相同; 
            (3)參數(shù)相同; 
            (4)基類函數(shù)必須有virtual關(guān)鍵字。 


            “隱藏”是指派生類的函數(shù)屏蔽了與其同名的基類函數(shù),規(guī)則如下:  ////////子類中
            (1)如果派生類的函數(shù)與基類的函數(shù)同名,但是參數(shù)不同。此時(shí),不論有無(wú)virtual關(guān)鍵字,基類的函數(shù)將被隱藏(注意別與重載混淆)。 
            (2)如果派生類的函數(shù)與基類的函數(shù)同名,并且參數(shù)也相同,但是基類函數(shù)沒(méi)有virtual關(guān)鍵字。此時(shí),基類的函數(shù)被隱藏(注意別與覆蓋混淆)。

             

            #include
            class B {
            public:
             void mf(){cout<<"1          ";};
             
            };

            class D: public B { 
            public:
             void mf(){cout<<"2          ";};
            };


            main(){
             D x;                         
             
             B *pB = &x;                 
             
             pB->mf();                   
             
             
             D *pD = &x;                 
             
             pD->mf(); 

                    //B   bb;
                   // bb.mf();                  
            }

            兩種情況下調(diào)用的都是對(duì)象x的成員函數(shù)mf,因?yàn)閮煞N情況下都是相同的函數(shù)和相同的對(duì)象,所以行為會(huì)相同,對(duì)嗎?

            對(duì),會(huì)相同。但,也許不會(huì)相同。特別是,如果mf是非虛函數(shù)而D又定義了自己的mf版本,行為就不會(huì)相同.

             


            1)當(dāng)類B中有虛函數(shù)mf()時(shí),類D中沒(méi)有重寫此函數(shù)時(shí),結(jié)果為:1        1。      一般的繼承
            2)當(dāng)類B中有虛函數(shù)mf()時(shí),類D中重寫此函數(shù)時(shí),結(jié)果為:2        2。          派生類函數(shù)覆蓋基類函數(shù)
            3)當(dāng)類B中有非虛函數(shù)mf()時(shí),類D中沒(méi)有重寫此函數(shù)時(shí),結(jié)果為:1        1。    一般的繼承
            4)當(dāng)類B中有非虛函數(shù)mf()時(shí),類D中重寫此函數(shù)時(shí),結(jié)果為:1        2。       類D中的函數(shù)隱藏了從基類B中繼承下來(lái)的函數(shù)
            5)當(dāng)類B中有虛或非虛函數(shù)mf()時(shí),類D中有與此函數(shù)同名但時(shí)參數(shù)不同的函數(shù)時(shí),從基類繼承而來(lái)的函數(shù)也被隱藏!


            ------------------------------------------------------------------------------------------

            多重繼承的成員調(diào)用:


              cbase
              CBase1:public  CBase
              CBase2:public  CBase
              CDervied:public  CBase1,CBase2
            1)當(dāng)cbase1與cbase2不是虛繼承的時(shí):dervied不能訪問(wèn)基類繼承而來(lái)(即共有的)的任何成員,不能識(shí)別。

            2)當(dāng)cbase1與cbase2是虛繼承的時(shí),dervied可以訪問(wèn)cbase中沒(méi)有1和2重新定義的成員,也能訪問(wèn)只被1或只被2重新定義的成員,這是調(diào)用1或2中的成員,當(dāng)dervied中有重寫時(shí),調(diào)用derived中重新定義的成員。(共有)

            :保證我們?cè)诓豢紤]繼承而來(lái)的隱藏成員時(shí),能夠識(shí)別該調(diào)用那個(gè)類中的!則編譯器也能識(shí)別!
            3)
            在調(diào)用變量的時(shí)候,要指出時(shí)屬于那個(gè)類。

            posted on 2005-11-09 12:51 夢(mèng)在天涯 閱讀(1566) 評(píng)論(0)  編輯 收藏 引用 所屬分類: CPlusPlus

            公告

            EMail:itech001#126.com

            導(dǎo)航

            統(tǒng)計(jì)

            • 隨筆 - 461
            • 文章 - 4
            • 評(píng)論 - 746
            • 引用 - 0

            常用鏈接

            隨筆分類

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            •  

            積分與排名

            • 積分 - 1811117
            • 排名 - 5

            最新評(píng)論

            閱讀排行榜

            亚洲欧美日韩久久精品| 国产一区二区三区久久精品| 色天使久久综合网天天| 四虎国产精品成人免费久久| 天天躁日日躁狠狠久久| 大美女久久久久久j久久| 久久精品国产亚洲AV蜜臀色欲| 久久久久人妻精品一区二区三区 | 欧美丰满熟妇BBB久久久| 国产精品久久久久久久久| 亚洲欧美久久久久9999| 色噜噜狠狠先锋影音久久| 久久亚洲春色中文字幕久久久| 久久久久无码专区亚洲av| 久久亚洲AV成人无码国产| 久久99热这里只频精品6| 久久播电影网| 国产99久久久国产精免费| AV狠狠色丁香婷婷综合久久| 久久国产劲爆AV内射—百度| 久久男人中文字幕资源站| 91精品国产综合久久四虎久久无码一级| 久久www免费人成看片| 国产69精品久久久久观看软件| 品成人欧美大片久久国产欧美| 青草影院天堂男人久久| 久久综合中文字幕| 国产精品久久久久久影院 | 亚洲а∨天堂久久精品9966| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久无码一区二区三区少妇| 国产91久久综合| 精品无码久久久久久国产| 狠狠色综合网站久久久久久久| 2020最新久久久视精品爱| 国产精品欧美久久久久天天影视| 伊人丁香狠狠色综合久久| 久久国产精品波多野结衣AV| 久久亚洲精品无码播放| 国内精品伊人久久久影院 | 久久婷婷综合中文字幕|