麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

DELPHI中的靜態虛擬及動態方法函數的區別。

2019-11-18 18:54:47
字體:
來源:轉載
供稿:網友

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

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

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

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


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

下一篇:Delphi中串行通信的實現

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

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 欧美人成在线视频 | 国产成人在线观看免费网站 | 91久久国产| 精品国产一区二区三区久久久 | 一二区电影 | 成人18在线 | 鲁丝一区二区三区不属 | 精品亚洲一区二区三区 | 黑人一区二区三区四区五区 | 92看片淫黄大片欧美看国产片 | 成人做爰高潮片免费视频韩国 | 男女羞羞在线观看 | 欧美国产91 | 欧美人成在线视频 | 欧美韩国日本在线 | 毛片视频观看 | 在线看毛片的网站 | 成人午夜在线免费视频 | 国产日产精品一区四区介绍 | 成人不卡在线观看 | 高清国产午夜精品久久久久久 | 免费a视频| 成人午夜免费看 | 国产成人在线视频播放 | 天天色综合2 | 国产亚洲精品久久久久久久久 | 成年免费在线视频 | 久久国产精品电影 | 嫩呦国产一区二区三区av | 黄视频网站免费观看 | 蜜桃视频观看麻豆 | 久久久久久久黄色片 | 日本68xxxx | 国产精品一区二区三区在线 | 色淫湿视频 | 九九精品在线观看视频 | 免费黄色短视频网站 | 午夜久久视频 | 精品国产乱码久久久久久丨区2区 | a免费视频| 亚洲情av|