• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        龍生9子----多態(tài)(續(xù)轉(zhuǎn))

        龍生9子----多態(tài)(續(xù)轉(zhuǎn))

        更新時(shí)間:2022-05-01 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        龍生九子

        ----多態(tài)

        作者:HolyFire

        一龍生九子,子子皆不同。這個(gè)道理說的是世界上沒有兩個(gè)或兩個(gè)以上的事物是完全相同的,事物之間有相同相似的一面,當(dāng)然也有不同相異的一面。只有將不同的和相同的都考慮進(jìn)來,才能完整的表達(dá)事物。

        事物的屬性有著不同的一面。我們知道人感知事物的一個(gè)途徑是觀察,用對(duì)不同光線的反應(yīng)來識(shí)別物體,所以我們給出事物的一個(gè)屬性,顏色。有時(shí)候一些物體的顏色是固定的,白色的云,蔚藍(lán)的天空,碧綠的草地,不禁令人神游太虛。

        但有些方面是不確定的,有一句話說道:“月有陰晴圓缺,人有悲歡離合”,這句話還不足以說明這個(gè)道理。我們中文里有時(shí)候會(huì)省略一些部分,“今天你吃了沒有?”吃的是什么,“早飯”,“下午茶”,“面包”,不知道。這里將吃東西抽象化了,這句話可以在早上說,中午說,晚上說,任何一個(gè)適合的時(shí)間段都可以說。感興趣的地方出現(xiàn)了,我們不知道吃什么東西,什么時(shí)候吃,但是卻可以使用它,簡(jiǎn)要的表達(dá)一下你的問候。這樣簡(jiǎn)單的設(shè)下伏筆,在具體需要的環(huán)境才用具體表現(xiàn)出來具體的用法,被廣泛運(yùn)用在生活中。“我砍!”表達(dá)了一個(gè)人要做的動(dòng)作,具體砍什么,只有感興趣的人才會(huì)去關(guān)注。“我生病了。”表達(dá)了一個(gè)人的狀態(tài),具體生的什么病,不是人人都想知道的。

        多態(tài)--就是指事物不同的方面

        多態(tài)是一種復(fù)雜的應(yīng)用,要全面的闡述它很難,所以理解它的思想就成了重點(diǎn)。在不同情況下,秉承它的思想,用不同的方法實(shí)現(xiàn)多態(tài)。

        還記得C++中的虛函數(shù)嗎,我在《后入為主----虛函數(shù)》中講過,虛函數(shù)可以動(dòng)態(tài)改變,運(yùn)用這個(gè)特性就能實(shí)現(xiàn)我們的目的了。不同的語言使用不同的方法,實(shí)現(xiàn)的機(jī)制就是一個(gè)類型提供的接口可以改變。這樣就能體現(xiàn)不同這個(gè)思想了。

        為了更好理解,我們用C++實(shí)現(xiàn)一個(gè)例子。

        我們知道,要生活,就要工作,工作是人的社會(huì)行為,幾乎人人都在工作。世界上有形形色色的人,人的工作的區(qū)分在什么地方呢,那就是它的職業(yè),不同職業(yè)的人做不同的事。

        學(xué)生的工作就是學(xué)習(xí),司機(jī)的工作是開車,小販的工作是賣商品,程序員的工作是編寫代碼。

        現(xiàn)在我們分析一下,世界上有很多人,人都要工作

        人 { 工作 = 未確定 }

        學(xué)生的工作是學(xué)習(xí)

        學(xué)生 { 人 , 工作 = 學(xué)習(xí) }

        司機(jī)的工作是開車

        司機(jī) { 人 , 工作 = 開車 }

        小販的工作是販賣

        小販 { 人 , 工作 = 販賣 }

        程序員的工作是編程

        程序員 { 人 , 工作 = 編程 }

        #include <iostream>

        unsing namespace std;

        class Man{

        public:

        virtual void Work( void ) = 0;//純虛函數(shù),沒有確定的職業(yè)就不知道他的工作。

        };

        class Student : public Man{

        public:

        void Work( void ) { cout << "I'm Learning."<< endl; };

        };

        class Chauffeur : public Man{

        public:

        void Work( void ) { cout << "I'm Driving."<< endl; };

        };

        class Vendor : public Man{

        public:

        void Work( void ) { cout << "I'm Vending."<< endl; };

        };

        class Programer : public Man{

        public:

        void Work( void ) { cout << "I'm Coding."<< endl; };

        };

        void main()

        {

        Man * which[5];

        which[0] = new Student;

        which[1] = new Chauffeur;

        which[2] = new Vendor;

        which[3] = new Programer;

        which[4] = NULL;

        for( int i = 0 ; which[i] ; i++ )

         {

        which[i]->Work();

        delete which[i];

         }

        }

        運(yùn)行結(jié)果

        I'm Learning. //虛函數(shù)表指針指向的Student的虛函數(shù)表

        I'm Driving.//虛函數(shù)表指針指向的Chauffeur的虛函數(shù)表

        I'm Vending.//虛函數(shù)表指針指向的Vendor的虛函數(shù)表

        I'm Coding. //虛函數(shù)表指針指向的Programer的虛函數(shù)表

        我們看到了由于使用了虛函數(shù),類增加了虛函數(shù)表和虛函數(shù)表指針

        which[0] = new Student;

        我們分析這個(gè)指針,他指向一個(gè)Student對(duì)象,而這個(gè)指針描述的是一個(gè)Man對(duì)象,在Student對(duì)象被創(chuàng)建的時(shí)候虛函數(shù)表指針指向了Student的虛函數(shù)表,所以which[0]->Work();調(diào)用的是在Student的虛函數(shù)表里查出來的Student::Work();其它的以此類推,不難得到運(yùn)行的結(jié)果。

        不同職業(yè)的類用同一個(gè)接口實(shí)現(xiàn)了不同功能,我們的目的達(dá)到了,代碼很簡(jiǎn)潔,意圖很明顯,這里C++又一次很好的實(shí)現(xiàn)了面向?qū)ο蟮乃枷搿?br>

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 中文字幕在线免费看线人| 亚洲一区二区无码偷拍| 国产免费一级高清淫曰本片| 性感美女视频免费网站午夜| 中文字幕在线观看亚洲日韩| 一色屋成人免费精品网站| 亚洲熟妇AV一区二区三区宅男| 日韩毛片免费无码无毒视频观看| 亚洲一区二区三区高清不卡| 国内精品免费视频自在线| 亚洲第一综合天堂另类专| 亚洲视频在线免费| 免费网站观看WWW在线观看| 亚洲天天做日日做天天看| 国产在线a免费观看| 亚洲av无码专区在线电影天堂| 免费一级特黄特色大片在线 | 激情婷婷成人亚洲综合| 亚洲免费视频一区二区三区| 一级特黄录像免费播放肥| 亚洲国产第一页www| 国产91色综合久久免费分享| 亚洲人成人伊人成综合网无码| 国产成人精品免费视频大全五级| a一级爱做片免费| 亚洲黄色在线电影| 国产自产拍精品视频免费看| 9久热这里只有精品免费| 久久精品国产亚洲AV高清热| 日本一区免费电影| 国产免费无码AV片在线观看不卡| 久久久久亚洲精品日久生情 | 免费人人潮人人爽一区二区 | 亚洲人成7777| 亚洲国产精品一区二区九九| 久久免费公开视频| 亚洲暴爽av人人爽日日碰| 国产亚洲3p无码一区二区| 永久免费毛片手机版在线看| 永久免费av无码网站yy| 一区二区亚洲精品精华液|