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