您好,登錄后才能下訂單哦!
這篇文章主要介紹C++中編譯器多態與運行期多態的優缺點是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
運行期多態
運行期多態的設計思想要歸結到類繼承體系的設計思想上去,對于相關功能的對象的集合,我們總希望能夠抽象出他們共有的功能的集合,在基類中將這些功能聲明為虛接口(虛函數),然后由子類繼承類去重寫這些虛接口,以實現子類特有的功能。
總結:運行期多態通過虛函數發生于運行期
優點
設計中重要的特性,對客觀世界的直覺認識
能夠處理同一繼承體系下異質類集合
缺點
運行期間進行虛函數的綁定,提高了程序的運行時開銷
龐大的類繼承層次,對接口的修改易影響類繼承層次
由于虛函數在運行期間確定,所以編譯器無法對虛函數優化
編譯器多態
對于模板參數而言,多態是通過模板具體和函數重載實現的,不同的模板具體導致調用不同的函數,這就是編譯器多態。相較于運行期多態,實現編譯器多態之間的類不需要繼承體系,約束他們的是隱式接口。
缺點
代碼調試帶來困難
無法實現模板的額分離編譯,當工程很大時,編譯時間不可小覷
無法處理異質類對象的集合
名詞解釋
函數重寫:當子類定義了一個與父類完全相同的虛函數時,則稱子類的這個函數重寫(也稱覆蓋)了父類的這個函數。
以上是“C++中編譯器多態與運行期多態的優缺點是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。