亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++多態的原因

發布時間:2020-10-21 05:20:41 來源:網絡 閱讀:384 作者:春春之春 欄目:編程語言

多態性可以簡單的概括為“1個接口,多種方法”,在程序運行的過程中才決定調用的機制C++編譯器在編譯的時候,要確定每個對象調用的函數的地址,這稱為早期綁定(early binding), 程序實現上是這樣,通過父類指針調用子類的函數,可以讓父類指針有多種形態。而要讓編譯器采用遲綁定,就要在基類中聲明函數時使用virtual關鍵字,這樣的函數我們稱為虛函數。一旦某個函數在基類中聲明為virtual,那么在所有的派生類中該函數都是virtual,而不需要再顯式地聲明為virtual。

正是由于每個對象調用的虛函數都是通過虛表指針來索引的,也就決定了虛表指針的正確初始化是非常重要的。換句話說,在虛表指針沒有正確初始化之前,我們不能夠去調用虛函數。那么虛表指針在什么時候,或者說在什么地方初始化呢?
答案是在構造函數中進行虛表的創建和虛表指針的初始化。構造函數的調用順序,在構造子類對象時,要先調用父類的構造函數,此時編譯器只“看到了”父類,并不知道后面是否后還有繼承者,它初始化父類對象的虛表指針,該虛表指針指向父類的虛表。當執行子類的構造函數時,子類對象的虛表指針被初始化,指向自身的虛表。

C++的多態性用一句話概括就是:在基類的函數前加上virtual關鍵字,在派生類中重寫該函數,運行時將會根據對象的實際類型來調用相應的函數。如果對象類型是派生類,就調用派生類的函數;如果對象類型是基類,就調用基類的函數。



 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东莞市| 濮阳县| 长寿区| 阿拉善左旗| 南汇区| 沿河| 楚雄市| 桐庐县| 镇原县| 张家港市| 宁强县| 金山区| 建宁县| 江油市| 山西省| 五莲县| 新建县| 武夷山市| 青河县| 丰县| 中阳县| 阿拉善盟| 敖汉旗| 忻州市| 霍林郭勒市| 营山县| 三台县| 桐庐县| 秀山| 山阳县| 咸宁市| 耒阳市| 静宁县| 远安县| 和顺县| 邵阳市| 富源县| 图们市| 察隅县| 宁海县| 怀宁县|