自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

漫畫 | C語言哭了,過年回家,只有我還沒對(duì)象

企業(yè)動(dòng)態(tài)
C語言回家過年,遇到不少小伙伴。大家都在外地打拼,一年難得見面,聚到一起吃飯,都非常高興。

[[382666]]

C語言回家過年,遇到不少小伙伴。

大家都在外地打拼,一年難得見面,聚到一起吃飯,都非常高興。

聽Java提到TIOBE, 正在喝酒的C語言激動(dòng)起來。

自己常年在那里排名第二,人類用自己寫的程序可真不少!可都是處于底層,在系統(tǒng)級(jí)編程,什么操作系統(tǒng),數(shù)據(jù)庫,編譯器......

這些軟件與應(yīng)用層的熱鬧光景比起來,顯得有些落寞。

Python端著酒杯來到C語言身邊。

餐桌的氣氛突然有點(diǎn)兒尷尬, 捅了簍子的Python趕緊招呼大家繼續(xù)喝酒。

好不容易熬到聚餐結(jié)束,C語言郁悶地回到了冷冷清清的家中。

C語言突然想起來對(duì)門的肯·湯普森,那是丹尼斯·里奇的“好基友”,他們倆一起創(chuàng)造了偉大的Unix操作系統(tǒng),獲得了計(jì)算機(jī)界的最高獎(jiǎng):圖靈獎(jiǎng)。

看到C語言滿臉沮喪, 肯·湯普森大為吃驚!

肯·湯普森立刻明白了,C語言覺得自己不支持面向?qū)ο缶幊獭?/p>

 

看到C語言很吃驚,肯·湯普森決定好好給他掰扯掰扯。

他真不愧是老司機(jī),唰唰唰迅速就寫成了一段代碼。

C語言很聰明,很快看懂了。

這里定義了一個(gè)叫做Shape的結(jié)構(gòu)體,外界只能通過相關(guān)的函數(shù)來對(duì)這個(gè)Shape進(jìn)行操作,例如創(chuàng)建(Shape_create), 移動(dòng)(Shape_move),等,不能直接訪問Shape的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。

雖然這里沒有class這樣的關(guān)鍵字,數(shù)據(jù)結(jié)構(gòu)和相關(guān)操作是分開寫的,看起來不太完美, 但確實(shí)是實(shí)現(xiàn)了封裝。

肯·湯普森不吭聲,繼續(xù)寫代碼。

大牛的風(fēng)格看來都是類似的:別瞎BB,給我上代碼。

這次定義了一個(gè)矩形(Rectangle)的結(jié)構(gòu)體,其中嵌套了Shape,難道這就實(shí)現(xiàn)了繼承?

C有點(diǎn)疑惑。

通過這種組合的方式,也算是實(shí)現(xiàn)了繼承吧。

這么輕松就實(shí)現(xiàn)了封裝和繼承,C語言感到很興奮, 但是多態(tài)怎么實(shí)現(xiàn)呢?

這時(shí)候外邊又傳來了門鈴聲。

Linus大神撇了一眼墻上的代碼,立刻就明白了怎么回事。

 

C和Go都是一臉茫然。

 C和Go都是一臉茫然。 

現(xiàn)在C有點(diǎn)明白了, 無論是Rectangle對(duì)象,還是Square對(duì)象,在調(diào)用Shape_area方法的時(shí)候, 都需要通過vptr這個(gè)指針找到虛函數(shù)表中的area方法。

對(duì)于Rectangle,找到的是Rectangel_area方法,對(duì)于Square,找到的是Square_area方法。

  1. struct Rectangle *r = Rectangle_create(5,5,10,10); 
  2. Shape_area((struct Shape *) r); 

【本文為51CTO專欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過作者微信公眾號(hào)coderising獲取授權(quán)】 

戳這里,看該作者更多好文

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2019-02-12 15:24:50

C語言JavaPython

2019-12-24 09:44:02

界面12306系統(tǒng)

2013-01-31 10:02:25

產(chǎn)品經(jīng)理火車

2019-02-03 10:33:56

2020-01-21 22:02:23

物聯(lián)網(wǎng)IOT物聯(lián)網(wǎng)應(yīng)用

2013-01-22 09:31:20

獵豹瀏覽器

2018-02-08 15:30:19

2020-09-23 16:55:43

C語言編程語言

2020-10-09 11:06:38

C語言桌面語法

2022-02-23 22:01:23

SpringAOP模式

2020-12-18 08:55:20

Python火車票代碼

2022-01-28 07:58:41

WPS數(shù)據(jù)整理

2014-07-30 13:44:57

2019-12-19 09:23:45

Java多線程數(shù)據(jù)

2010-08-24 16:07:37

C語言

2022-10-21 09:01:41

StudentC++類型

2015-10-10 11:43:19

數(shù)據(jù)漫畫人才

2020-03-20 08:00:32

代碼程序員追求

2010-08-24 16:00:43

C語言

2011-06-02 09:47:11

C語言重構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)