c++ try catch語句 什么是虛函數和純虛函數,有什么區(qū)別?
什么是虛函數和純虛函數,有什么區(qū)別?虛擬函數和純虛擬函數都可以在它們的子類中重寫。它們之間的區(qū)別在于:(1)純虛函數只有定義,沒有實現,虛函數既有定義又有實現代碼。純虛函數一般沒有代碼實現部分,如vi
什么是虛函數和純虛函數,有什么區(qū)別?
虛擬函數和純虛擬函數都可以在它們的子類中重寫。它們之間的區(qū)別在于:(1)純虛函數只有定義,沒有實現,虛函數既有定義又有實現代碼。純虛函數一般沒有代碼實現部分,如virtual void print()=0,而一般虛函數必須有代碼實現部分,否則函數將是未定義的。Virtual void print(){printf(“this is Virtual functionn”)}(2)包含純虛函數的類不能定義其對象,而包含虛函數的類可以定義其對象。
虛函數或純虛函數主要用來解決什么問題?
虛擬函數用于后期動態(tài)綁定,可以實現運行時多態(tài)性。說白了,它是一個函數指針,決定了運行時要調用的目標。純虛函數,顧名思義,是一個完全虛函數。它沒有綁定到任何實際函數,是空的。純虛函數主要用于防止類的實例化。類的派生必須實現函數,否則就不能實例化,這相當于C#或Java的抽象函數。如果一個類中的所有函數都是純虛函數,那么這個類就構成了一個接口。
在C 中函數指針有什么作用呢,為什么不直接調用函數而要使用函數指針?
可用作回調函數。只需將函數指針作為參數傳遞給另一個函數,另一個函數就可以在執(zhí)行期間或執(zhí)行之后通過該指針調用預置的用戶函數。