<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦 > 知識大全 > 知識百科 > 百科知識 > c語言中什么是多態(tài)

        c語言中什么是多態(tài)

        時間: 歐東艷656 分享

        c語言中什么是多態(tài)

          C語言是一種計算機(jī)程序設(shè)計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機(jī)上,它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機(jī)硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動畫,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。

          C語言中的多態(tài)實現(xiàn) 相信很多人都看過設(shè)計模式方面的書,大家有什么體會呢?Bridge,Proxy,F(xiàn)actory這些設(shè)計模式都是基于抽象類的。使用抽象對象是這里的一個核心。

          其實我覺得框架化編程的一個核心問題是抽象,用抽象的對象構(gòu)建程序的主體框架,這是面向?qū)ο缶幊痰钠毡樗枷搿S贸橄髽?gòu)建骨架,再加上多態(tài)就形成了一個完整的程序。由于C++語言本身實現(xiàn)了繼承和多態(tài),使用這樣的編程理念(理念啥意思?跟個風(fēng),嘿嘿)在C++中是十分普遍的現(xiàn)象,可以說Virtual(多態(tài))是VC的靈魂。

          但是,使用C語言的我們都快把這個多態(tài)忘光光了。我常聽見前輩說,類?多態(tài)?我們用的是C,把這些忘了吧。很不幸的是,我是一個固執(zhí)的人。這么好的東西,為啥不用呢。很高興的,在最近的一些純C代碼中,我看見了C中的多態(tài)!下面且聽我慢慢道來。

          1. VC中的Interface是什么

          Interface:中文解釋是接口,其實它表示的是一個純虛類。不過我所要說的是,在VC中的Interface其實就是struct,查找Interface的定義,你可以發(fā)現(xiàn)有這樣的宏定義:

          #Ifndef Interface

          #define Interface struct

          #endif

          而且,實際上在VC中,如果一個類有Virtual的函數(shù),則類里面會有vtable,它實際上是一個虛函數(shù)列表。實際上C++是從C發(fā)展而來的,它不過是在語言級別上支持了很多新功能,在C語言中,我們也可以使用這樣的功能,前提是我們不得不自己實現(xiàn)。

          2.C中如何實現(xiàn)純虛類(我稱它為純虛結(jié)構(gòu))

          比較前面,相信大家已經(jīng)豁然開朗了。使用struct組合函數(shù)指針就可以實現(xiàn)純虛類。

          例子: typedef struct {

          void (*Foo1)();

          char (*Foo2)();

          char* (*Foo3)(char* st);

          }MyVirtualInterface;

          這樣假設(shè)我們在主體框架中要使用橋模式。(我們的主類是DoMyAct,接口具體實現(xiàn)類是Act1,Act2)下面我將依次介紹這些“類”。(C中的“類”在前面有說明,這里換了一個,是使用早期的數(shù)組的辦法)

          主類DoMyAct: 主類中含有MyVirtualInterface* m_pInterface; 主類有下函數(shù):

          DoMyAct_SetInterface(MyVirtualInterface* pInterface)

          {

          m_pInterface= pInterface;

          }

          DoMyAct_Do()

          {

          if(m_pInterface==NULL) return;

          m_pInterface->Foo1();

          c=m_pInterface->Foo2();

          }

          子類Act1:實現(xiàn)虛結(jié)構(gòu),含有MyVirtualInterface st[MAX]; 有以下函數(shù):

          MyVirtualInterface* Act1_CreatInterface()

          {

          index=FindValid() 象池或者使用Malloc !應(yīng)該留在外面申請,實例化

          if(index==-1) return NULL;

          St[index].Foo1=Act1_Foo1; // Act1_Foo1要在下面具體實現(xiàn)

          St[index].Foo2=Act1_Foo2;

          St[index].Foo3=Act1_Foo3;

          Return &st [index];

          }

          子類Act2同上。

        243418 主站蜘蛛池模板: 香港日本三级亚洲三级| 国产亚洲精品黑人粗大精选| 国产品精品久久久久中文| 国产精品老年自拍视频| 日本一区二区三区小视频| 亚洲日韩一区二区一无码| 国产亚洲精品久久77777| av深夜免费在线观看| 中文字幕精品久久久久人妻红杏1| 亚洲爆乳WWW无码专区| 成人免费777777| 日韩一区二区在线观看的| 天堂a无码a无线孕交| 黑人猛精品一区二区三区| 99热国产成人最新精品| 人妻少妇久久久久久97人妻| 久久久WWW成人免费精品| 国产精品嫩草影院入口一二三| 亚洲成人av在线资源| 青青草视频原手机在线观看| 亚洲中文字幕国产综合| 久久久精品国产亚洲AV日韩| 亚洲一区二区三区自拍偷拍| 樱桃视频影院在线播放| 成人福利一区二区视频在线| 欧美午夜成人片在线观看| 在线欧美中文字幕农村电影| 国内精品视频一区二区三区| 欧美怡红院视频一区二区三区| 深夜视频国产在线观看| 老熟妇国产一区二区三区 | 爽爽精品dvd蜜桃成熟时电影院| 欧美自拍另类欧美综合图区| 777米奇色狠狠俺去啦| 日本系列亚洲系列精品| 亚洲色婷婷综合开心网| 激情五月开心综合亚洲 | 精品中文人妻在线不卡| 久久精品国产亚洲AV不卡| 亚洲码亚洲码天堂码三区| 欧美成人免费全部观看国产|