娛樂,C語言模擬C++虛函數多態性。

看<Python源碼剖析>有感,原來C語言可以這樣玩。。仔細想想,C++不也是在彙編層面上的封裝麼。膜拜這些語言設計者,深諳計算機科學的精髓,真是長見識了。

本文只是簡單模擬下多態,大體上就是C++的虛函數表機制,並沒有考慮類域與繼承機制,真要討論起來那就麻煩多了,推薦大家可以看看PY源碼解析,裏面有簡單介紹。

我拿傳統的圓與正方形問題爲例子,基類是Shape,每個類定義虛函數showShape(),從而體現多態。

額,懶得寫了,代碼面前了無祕密。。大概思想就是每個結構體頭都一樣(當作某個基類),這樣可以用結構體頭指針指向任何結構體,虛函數就是在這個結構體頭上做文章,有點繞口了,看代碼吧,我把註釋寫得很詳細~

 

 

 

 

 

輸出:

I'm circle
I'm square

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章