• <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>

            為生存而奔跑

               :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

            留言簿(5)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            積分與排名

            • 積分 - 330179
            • 排名 - 74

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            1、構(gòu)造函數(shù)不能是虛函數(shù)。因?yàn)闃?gòu)造函數(shù)不是一個(gè)普通的函數(shù),要構(gòu)造一個(gè)對(duì)象,構(gòu)造函數(shù)必須掌握所創(chuàng)建的對(duì)象的確切類型,因此構(gòu)造函數(shù)不能是虛的。
            2、析構(gòu)函數(shù)可以是虛函數(shù)。首先我們要搞清楚為什么要虛析構(gòu)函數(shù)?這樣做是為了當(dāng)用一個(gè)基類的指針刪除一個(gè)派生類的對(duì)象時(shí),派生類的析構(gòu)函數(shù)會(huì)被調(diào)用。也就是只有當(dāng)靜態(tài)類型為基類,而動(dòng)態(tài)類型為子類時(shí),為了確保子類的析構(gòu)函數(shù)能被調(diào)用,基類的析構(gòu)函數(shù)必須被聲明為虛析構(gòu)函數(shù)。
            一般情況下類的析構(gòu)函數(shù)里面都是釋放內(nèi)存資源,而析構(gòu)函數(shù)不被調(diào)用的話就會(huì)造成內(nèi)存泄漏。當(dāng)然,如果在析構(gòu)函數(shù)中做了其他工作的話,那你的所有努力也都是白費(fèi)力氣。
                當(dāng)然,并不是要把所有類的析構(gòu)函數(shù)都寫(xiě)成虛函數(shù)。因?yàn)楫?dāng)類里面有虛函數(shù)的時(shí)候,編譯器會(huì)給類添加一個(gè)虛函數(shù)表,里面來(lái)存放虛函數(shù)指針,這樣就會(huì)增加類的存儲(chǔ)空間。所以,只有當(dāng)一個(gè)類被用來(lái)作為基類的時(shí)候,才把析構(gòu)函數(shù)寫(xiě)成虛函數(shù)。
            3、純虛函數(shù)
            聲明純虛函數(shù)的方法:
            virtual void purefun()=0;
            聲明一個(gè)純虛函數(shù)pure virtual 的目的就是讓Derived class只繼承函數(shù)接口,因?yàn)樗鼪](méi)有定義。但是實(shí)際上是可以有一份Defualt定義的,在使用時(shí)需要指出類名。如:
            Derived->Base::Purefunction();
            注意含有純虛函數(shù)的類是不能被實(shí)例化的。如果Base類中有一個(gè)純虛函數(shù)purefun(),Derived繼承了Base后必須對(duì)purefun()進(jìn)行重寫(xiě),否則Derived也是一個(gè)函數(shù)純虛函數(shù)的類,同樣是不能被實(shí)例化的。
            4、virtual函數(shù)的缺省參數(shù)值是靜態(tài)綁定的,所以記住決不要重新定義繼承而來(lái)的virtual 函數(shù)的缺省參數(shù)值。
            #include<iostream>
            #include
            <algorithm>
            #include
            <string>
            #include
            <vector>
            #include
            <queue>
            #include
            <cmath>
            #include
            <map>
            using namespace std;
            class Base
            {
            public:
              
            virtual void display(int i =1)
              {
                 cout
            <<"Base Display"<<endl;
              }
            };
            class Derived :public Base
            {
            public:
              
            virtual void display(int i = 2)
              {
                 
            if(i  ==2)
                     cout
            <<"derived i==2"<<endl;
                 
            if(i == 1)
                     cout
            <<"derived i ==1"<<endl;
              }
            };
            int main()
            {
                Base
            * p=new Derived();
                p
            ->display();
            }
            輸出是"derived i==1"
            posted on 2009-08-31 16:57 baby-fly 閱讀(314) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 技術(shù)
            国产精品九九久久免费视频| 久久久www免费人成精品| 成人a毛片久久免费播放| 欧美激情精品久久久久久久| 亚洲香蕉网久久综合影视 | 亚洲愉拍99热成人精品热久久| 久久综合综合久久综合| 午夜精品久久久久久| 久久综合九色综合欧美狠狠| 三级三级久久三级久久| 91久久国产视频| 国产精品女同久久久久电影院| 国内精品久久久久久久久电影网| 久久青青草原精品国产| 伊人久久大香线蕉综合热线| 精品久久人人爽天天玩人人妻| 久久精品中文闷骚内射| 精品久久久无码21p发布| 看全色黄大色大片免费久久久 | 久久精品人人槡人妻人人玩AV| 免费一级做a爰片久久毛片潮| 久久精品人人做人人爽电影| 久久青青草原精品国产| 亚洲国产精品18久久久久久| 99久久香蕉国产线看观香 | 久久偷看各类wc女厕嘘嘘| 婷婷久久五月天| 麻豆av久久av盛宴av| 亚洲精品WWW久久久久久| 久久综合精品国产一区二区三区| 精品国产综合区久久久久久| 国产精品99久久久久久www| A级毛片无码久久精品免费| 久久综合久久久| 精品久久人人妻人人做精品| 久久91精品综合国产首页| 久久免费观看视频| 久久久久久国产精品美女| 国产精品美女久久久m| 狠狠狠色丁香婷婷综合久久俺| 久久久久国产一级毛片高清版|