a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Delphi > 正文

DELPHI中的靜態(tài)虛擬及動態(tài)方法函數(shù)的區(qū)別。

2019-11-18 18:54:47
字體:
來源:轉載
供稿:網(wǎng)友

1、靜態(tài)方法是方法的缺省類型,對它就像對通常的過程和函數(shù)那樣調用,編譯器知道這些方法的地址,所以調用一個靜態(tài)方法時它能把運行信息靜態(tài)地鏈接進可執(zhí)行文件,所以,靜態(tài)方法速度最快,但它們卻不能被覆蓋來支持多態(tài)性。

2、虛擬方法和靜態(tài)方法的調用方式相同。由于虛擬方法能被覆蓋,在代碼中調用一個指定的虛擬方法時編譯器并不知道它的地址,因此,編譯器通過建立虛擬方法表(VMT)來查找在運行時的函數(shù)地址。所有的虛擬方法在運行時通過VMT來高度,一個對象的VMT表中除了自己定義的虛擬方法外,還有它的祚的所有的虛擬方法,因此虛擬方法比動態(tài)方法用的內(nèi)存要多,但它執(zhí)行得比較快。

3、動態(tài)方法跟虛擬方法基本相似,只是它們的高度系統(tǒng)不同。編譯器為每一個動態(tài)方法指定一個獨一無二的數(shù)字,用這個數(shù)字和動態(tài)方法的地址構造一個動態(tài)方法表(DMT)。不像VMT表,在DMT表中僅有它聲明的動態(tài)方法,并且這個方法需要祖先的DMT表來訪問它蓁的動態(tài)方法。正因為這樣動態(tài)方法比虛擬方法用的內(nèi)存要少,但執(zhí)行起來羅慢,因為有可能要到祚對象的DMT中查找動態(tài)法。

4、OP通過覆蓋使一方法在不同的派生類間表現(xiàn)出不同的行為。OP中能被覆蓋的方法是在聲明時被標識為virtual或dynamic的方法。為了覆蓋一個方法,在派生類的聲明中用override代替virtual或dynamic。用了override后,編譯器就會用新的方法替換VMT中原先的方法,而原先的方法也還存在,而如果用override再次聲明一個靜態(tài)方法,則是真正的覆蓋,是用新的方法完全替換在祖先類中的同明方法。


上一篇:DELPHI中圖像的顯示效果

下一篇:Delphi中串行通信的實現(xiàn)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關注

主站蜘蛛池模板: 欧美午夜一区二区三区 | 欧美女优在线视频 | 色久在线 | 国产一级一级国产 | 亚洲一区二区高清视频 | 成人黄色在线视频 | 中文字幕乱码一区二区三区 | 91亚洲在线| 成人福利av| 天天综合永久入口 | 中文字幕一二区 | 日本一区二区三区四区 | 久久成人精品视频 | 精品久久中文字幕 | 欧美a∨一区二区三区久久黄 | 久久久久久久久久久久久国产精品 | 国产青青青| 亚洲精选一区 | 国产精品一区亚洲二区日本三区 | 国产九九九| 免费看h | 91视频观看 | 极情综合网| 亚洲欧洲在线观看 | 国产日本欧美一区二区三区 | 亚洲欧洲日韩在线 | 国产视频在线播放 | 91精品国产91久久久久久蜜臀 | 欧美国产激情二区三区 | 日韩在线观看成人 | av手机在线播放 | 欧美日韩不卡合集视频 | 精品视频一区二区三区 | 国产成人在线视频 | 色欧美日韩| 日韩亚洲视频 | 日本视频在线播放 | 羞羞视频在线观看免费 | 一区二区手机在线 | 视频一区二区三区中文字幕 | 黄色av免费在线观看 |