国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 營銷百科 > 虛擬函數(shù)內聯(lián)函數(shù)

虛擬函數(shù)內聯(lián)函數(shù)

時間:2023-03-26 13:08:01 | 來源:營銷百科

時間:2023-03-26 13:08:01 來源:營銷百科

虛擬函數(shù)內聯(lián)函數(shù):因為內聯(lián)函數(shù)常常可以提高代碼執(zhí)行的速度,因此很多普通函數(shù)會根據(jù)情況進行內聯(lián)化,但是虛擬函數(shù)無法利用內聯(lián)化的優(yōu)勢,這是因為內聯(lián)函數(shù)是在'編譯期'編譯器將調用內聯(lián)函數(shù)的地方用內聯(lián)函數(shù)體的代碼代替(內聯(lián)展開),但是虛擬函數(shù)本質上是'運行期'行為,本質上在'編譯期'編譯器無法知道某處的虛擬函數(shù)調用在真正執(zhí)行的時候會調用到那個具體的實現(xiàn)(即在'編譯期'無法確定其綁定),因此在'編譯期'編譯器不會對通過指針或者引用調用的虛擬函數(shù)進行內聯(lián)化。也就是說,如果想利用虛擬函數(shù)的'動態(tài)綁定'帶來的設計優(yōu)勢,那么必須放棄'內聯(lián)函數(shù)'帶來的速度優(yōu)勢。

根據(jù)上面的分析,似乎在采用虛擬函數(shù)時帶來和很多的負面影響,但是這些負面影響是否一定是虛擬函數(shù)所必須帶來的?或者說,如果不采用虛擬函數(shù),是否一定能避免這些缺陷?

還是分析以上圖形繼承體系的例子,假設不采用虛擬函數(shù),但同時還要實現(xiàn)與上面一樣的功能(維持程序的設計語義不變),那么對于基類Shape必須增加一個類型標識成員變量用來在運行時識別到底是哪一個具體的派生類對象:

如①處和②處所示,增加type用來標識派生類對象的具體類型。另外注意這時③處和④處此時已經(jīng)不再使用virtual聲明。

其各派生類在構造時,必須設置具體類型,以Circle派生類為例:

對圖形繼承體系的使用者(這里是Canvas)而言,其Paint和RotateSelected也需要修改:

關鍵詞:函數(shù),虛擬

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉