• <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++技術(shù)交流

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              6 隨筆 :: 8 文章 :: 1 評論 :: 0 Trackbacks

            多態(tài)是指發(fā)出同樣的消息被不同類型的對象接收時產(chǎn)生完全不同的行為,簡單的說就是“一個接口,多種算法”。C++語言支持兩種多態(tài)性,一種是編譯時的多態(tài),另一種是運(yùn)行時的多態(tài)性。函數(shù)和運(yùn)算符重載是在編譯時完成,稱之為靜態(tài)多態(tài),也稱靜態(tài)聯(lián)編。運(yùn)行時的多態(tài)性是通過虛函數(shù)實現(xiàn),用虛函數(shù)實現(xiàn)的多態(tài)性稱為動態(tài)多態(tài),也稱動態(tài)聯(lián)編。

            虛函數(shù)

            虛函數(shù)的定義格式
            在一個類中用關(guān)鍵字virtual說明在成員函數(shù)稱為虛函數(shù),其定義的格式如下:
            virtual? 函數(shù)類型 函數(shù)名(形參表)

            函數(shù)體
            }
            定義虛函數(shù)就是為了實現(xiàn)多態(tài)類。在基類中某個成員函數(shù)被聲明為虛函數(shù)后,這個成員函數(shù)通常要在派生類中被重新定義,否則定義虛函數(shù)就沒有意義。在派生類中重新定義虛函數(shù)時,其函數(shù)原型必須與基類中的原型完全相同,否則編譯時會出錯或被當(dāng)作函數(shù)重載處理。如果在基類中說明了虛函數(shù),在它的派生類中與基類中虛函數(shù)說明相同的函數(shù)一定是虛函數(shù),可以省略關(guān)鍵字virtual。


            虛析構(gòu)函數(shù)

            析構(gòu)函數(shù)是在該類對象消亡之前進(jìn)行一些必要的清理工作,對于動態(tài)綁定的虛 函數(shù)必須用虛析構(gòu)函數(shù)進(jìn)行釋放。


            純虛函數(shù)和抽象類
            1、
            純虛函數(shù)

            純虛函數(shù)是一鐘特殊的虛函數(shù),它只有函數(shù)的聲明,并沒有具體實現(xiàn)函數(shù)的功能。它的一般格式如下:
            virtual <函數(shù)返回類型><虛函數(shù)名稱><參數(shù)列表>=0;

            例:

            #include<iostream.h>
            class shape
            {
            public:
            ?shape(double dfx=0.0,double dfy=0.0);
            ??virtual void draw()=0;//純虛函數(shù)
            protected:
            ?double firstx;
            ?double firsty;
            };
            shape::shape(double dfx,double dfy)
            {
            ?firstx=dfx;
            ?firsty=dfy;
            }
            //直線類
            class line:public shape
            {
            public:
            ?line(double dfx=0.0,double dfy=0.0,double dsx=0.0,double dsy=0.0);
            ?void draw();
            protected:
            ?double secondx;
            ?double secondy;
            };
            line::line(double dfx,double dfy,double dsx,double dsy):shape(dfx,dfy)
            {
            ?secondx=dsx;
            ?secondy=dsy;
            }
            void line::draw()
            {
            ?cout<<"繪制一條直線,第一點坐標(biāo)為:("
            ??<<firstx<<","<<firsty<<"),第二點坐標(biāo)為:("<<secondx<<","<<secondy<<")"<<endl;
            }
            class circle:public shape
            {
            public:
            ?circle(double dfx=0.0,double dfy=0.0,double dr=0.0);
            ?void draw();
            protected:
            ?double radius;
            };
            circle::circle(double dfx,double dfy,double dr):shape(dfx,dfy)
            {
            ?radius=dr;
            }
            void circle::draw()
            {
            ?cout<<"繪制一個圓,圓心坐標(biāo)為:("
            ??<<firstx<<","<<firsty<<"),圓的半徑為:"
            ??<<radius<<endl;
            }
            void drawing(shape *ps)
            {
            ?ps->draw();
            }
            void main()
            {
            ?line l(1.0,1.0,9.8,15.2);
            ?circle c(2.0,3.0,12.4);
            ?drawing(&l);
            ?drawing(&c);
            }


            抽象類
            帶有純虛函數(shù)的類也稱為抽象類。在繼承體系中,抽象類不能位于底層,它必須有派生類,并且其派生類中必須對抽象類中的純虛函數(shù)有具體的實現(xiàn)。一般,抽象類只是撕碎一些通用的操作接口,具體的實現(xiàn)由其派生類完成。

            posted on 2006-06-24 16:33 啊嵩 閱讀(188) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久久久黑人强伦姧人妻| 国产69精品久久久久9999| 大香伊人久久精品一区二区| 国产69精品久久久久观看软件 | 精品久久久久久国产免费了| 久久这里只有精品视频99| 伊人久久大香线蕉综合影院首页 | 精品久久久久久无码中文野结衣| 久久伊人影视| 久久国产乱子精品免费女| 午夜精品久久久久| 亚洲一区二区三区日本久久九| 亚洲国产婷婷香蕉久久久久久| 久久精品男人影院| 7777精品久久久大香线蕉| 久久久久久久亚洲精品| 国产精品久久久福利| 久久综合久久综合亚洲| 久久国产精品国语对白| 精品一区二区久久| 精品国产一区二区三区久久久狼| 亚洲人成无码网站久久99热国产| 久久久久综合网久久| 精品久久777| 国产人久久人人人人爽| 亚洲精品乱码久久久久久中文字幕 | 国产成人综合久久久久久| avtt天堂网久久精品| 人妻无码中文久久久久专区| 久久国产色av免费看| 久久亚洲国产精品成人AV秋霞| 理论片午午伦夜理片久久 | 亚洲国产精品综合久久网络| 99久久精品九九亚洲精品| 热久久国产精品| 国产亚洲精久久久久久无码AV| 日本福利片国产午夜久久| 精品综合久久久久久88小说| 久久综合欧美成人| 久久精品99无色码中文字幕| 久久久久无码中|