9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學習啦 > 知識大全 > 知識百科 > 百科知識 > c語言中什么是多態

c語言中什么是多態

時間: 歐東艷656 分享

c語言中什么是多態

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

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

  其實我覺得框架化編程的一個核心問題是抽象,用抽象的對象構建程序的主體框架,這是面向對象編程的普遍思想。用抽象構建骨架,再加上多態就形成了一個完整的程序。由于C++語言本身實現了繼承和多態,使用這樣的編程理念(理念啥意思?跟個風,嘿嘿)在C++中是十分普遍的現象,可以說Virtual(多態)是VC的靈魂。

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

  1. VC中的Interface是什么

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

  #Ifndef Interface

  #define Interface struct

  #endif

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

  2.C中如何實現純虛類(我稱它為純虛結構)

  比較前面,相信大家已經豁然開朗了。使用struct組合函數指針就可以實現純虛類。

  例子: typedef struct {

  void (*Foo1)();

  char (*Foo2)();

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

  }MyVirtualInterface;

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

  主類DoMyAct: 主類中含有MyVirtualInterface* m_pInterface; 主類有下函數:

  DoMyAct_SetInterface(MyVirtualInterface* pInterface)

  {

  m_pInterface= pInterface;

  }

  DoMyAct_Do()

  {

  if(m_pInterface==NULL) return;

  m_pInterface->Foo1();

  c=m_pInterface->Foo2();

  }

  子類Act1:實現虛結構,含有MyVirtualInterface st[MAX]; 有以下函數:

  MyVirtualInterface* Act1_CreatInterface()

  {

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

  if(index==-1) return NULL;

  St[index].Foo1=Act1_Foo1; // Act1_Foo1要在下面具體實現

  St[index].Foo2=Act1_Foo2;

  St[index].Foo3=Act1_Foo3;

  Return &st [index];

  }

  子類Act2同上。

243418 主站蜘蛛池模板: 亚洲欧美日韩综合久久久| 韩国午夜理伦三级| 在线免费观看毛片av| 9久9久热精品视频在线观看| 久久国产精品第一区二区| 人妻少妇精品视频专区| 亚洲欧美日韩综合一区在线| 亚欧洲乱码视频在线专区| 精品国产这么小也不放过| 免费人成网站免费看视频| 成 人 色 网 站免费观看| 777米奇色狠狠俺去啦| 国产精品视频中文字幕| 人妻丰满熟妇av无码区| 视频一区视频二区视频三| 国产成人精品高清不卡在线| 亚洲人成电影在线天堂色| 99久久成人亚洲精品观看| 国产日韩久久免费影院| 国产一区二区三区不卡在线看| 人人妻人人狠人人爽天天综合网 | 骚虎三级在线免费播放| 香蕉久久夜色精品国产成人| 亚洲午夜成人精品电影在线观看| 丰满的少妇被猛烈进入白浆| 秋霞人妻无码中文字幕| 麻豆a级片| 北岛玲中文字幕人妻系列| 黄床大片免费30分钟国产精品 | 国产综合久久久久鬼色| 男女激情一区二区三区| 国产拗精品一区二区三区| 国产粉嫩学生高清专区麻豆| 欧美激情内射喷水高潮| 无码av不卡免费播放| 日本极品少妇videossexhd| 91午夜福利在线观看精品| 老熟妇乱子交视频一区| 国产在线观看免费观看| 国产精品黄色片| 91久久精品国产性色也|