91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

C++多態的原因

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

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

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

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



 

向AI問一下細節

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

AI

江西省| 阿克陶县| 济阳县| 手游| 综艺| 和平县| 英山县| 鸡西市| 陇西县| 上栗县| 育儿| 凤阳县| 陆良县| 金山区| 岑巩县| 灌南县| 修文县| 彩票| 西青区| 永修县| 莱西市| 深圳市| 怀化市| 张家界市| 东方市| 盐边县| 虞城县| 海阳市| 郎溪县| 萝北县| 镇远县| 分宜县| 囊谦县| 汝阳县| 闻喜县| 邵阳县| 宁国市| 长寿区| 西藏| 芮城县| 铜梁县|