析構(gòu)函數(shù)為什么是虛函數(shù) 什么是虛函數(shù)和純虛函數(shù),有什么區(qū)別?
什么是虛函數(shù)和純虛函數(shù),有什么區(qū)別?虛擬函數(shù)和純虛擬函數(shù)都可以在它們的子類中重寫。它們之間的區(qū)別在于:(1)純虛函數(shù)只有定義,沒有實(shí)現(xiàn),虛函數(shù)既有定義又有實(shí)現(xiàn)代碼。純虛函數(shù)一般沒有代碼實(shí)現(xiàn)部分,如vi
什么是虛函數(shù)和純虛函數(shù),有什么區(qū)別?
虛擬函數(shù)和純虛擬函數(shù)都可以在它們的子類中重寫。它們之間的區(qū)別在于:(1)純虛函數(shù)只有定義,沒有實(shí)現(xiàn),虛函數(shù)既有定義又有實(shí)現(xiàn)代碼。純虛函數(shù)一般沒有代碼實(shí)現(xiàn)部分,如virtual void print()=0,而一般虛函數(shù)必須有代碼實(shí)現(xiàn)部分,否則函數(shù)將是未定義的。Virtual void print(){printf(“this is Virtual functionn”)}(2)包含純虛函數(shù)的類不能定義其對(duì)象,而包含虛函數(shù)的類可以定義其對(duì)象。
虛函數(shù)和純虛函數(shù)的區(qū)別?
使用虛擬函數(shù),我們可以以一定的成本靈活地動(dòng)態(tài)綁定。如果父類的函數(shù)(方法)不是必需的或無法實(shí)現(xiàn),并且依賴于子類來實(shí)現(xiàn),則可以將此函數(shù)(方法)設(shè)置為虛函數(shù)名=0。我們稱這個(gè)函數(shù)(方法)為純虛函數(shù)。換句話說,虛擬函數(shù)可以直接從父類的方法繼承而不被重寫。但是,純虛函數(shù)必須先重寫才能使用