虛函數(shù)子類必須實(shí)現(xiàn)嗎 C 父類中有純虛函數(shù),在子類的子類中也需要實(shí)現(xiàn)嗎?
C 父類中有純虛函數(shù),在子類的子類中也需要實(shí)現(xiàn)嗎?(1)在main函數(shù)中,如果存在父類或子類的實(shí)例對(duì)象,則需要實(shí)現(xiàn)父類的虛函數(shù)。(2)在主函數(shù)中,如果沒有父類或子類的實(shí)例對(duì)象,則不能實(shí)現(xiàn)父類的虛函數(shù)
C 父類中有純虛函數(shù),在子類的子類中也需要實(shí)現(xiàn)嗎?
(1)在main函數(shù)中,如果存在父類或子類的實(shí)例對(duì)象,則需要實(shí)現(xiàn)父類的虛函數(shù)。
(2)在主函數(shù)中,如果沒有父類或子類的實(shí)例對(duì)象,則不能實(shí)現(xiàn)父類的虛函數(shù)。
(3)如果您將虛擬函數(shù)編寫為純虛擬函數(shù),則無需實(shí)現(xiàn)它。沒有這樣的討論。
如果在子類中實(shí)現(xiàn),則不需要實(shí)現(xiàn)子類。
如果未實(shí)現(xiàn)子類,則可能需要實(shí)現(xiàn)子類。
無論如何,未實(shí)現(xiàn)=0函數(shù)的類無法創(chuàng)建對(duì)象。
因此需要實(shí)現(xiàn)要實(shí)例化的類。
C 基類子類中,虛函數(shù)究竟是怎樣判斷該調(diào)用哪個(gè)函數(shù)的?
當(dāng)存在虛擬函數(shù)時(shí),每個(gè)對(duì)象的this指針指向虛擬表的地址,該表存儲(chǔ)虛擬函數(shù)的地址。編譯時(shí),決定在調(diào)用普通函數(shù)時(shí),直接調(diào)用函數(shù)的地址。調(diào)用虛函數(shù)時(shí),地址取自虛表。
虛繼承和虛函數(shù)繼承分別指什么?
虛擬繼承是多重繼承中的一個(gè)特殊概念,旨在解決多重繼承問題。
使用虛擬繼承可以節(jié)省內(nèi)存空間。虛函數(shù)是面向?qū)ο蠖鄳B(tài)的主要方式。通過在基類中繼承虛函數(shù),在子類中重載,可以實(shí)現(xiàn)不同的操作。繼承的虛函數(shù)不需要在子類中添加virtual。默認(rèn)情況下,它是虛擬的??梢员黄渥宇愔貙憽?/p>