天天看點

【末世旅行之C++】C++中的虛函數和純虛函數的了解

【虛函數】

C++的虛函數主要作用是“運作時多态”,父類中提供虛函數的實作,為子類提供預設的函數實作。

子類可以重寫父類的虛函數實作子類的特殊化。

【純虛函數】

C++中包含純虛函數的類,被稱為是“抽象類”。抽象類不能使用new出對象,隻有實作了這個純虛函數的子類才能new出對象。

C++中的純虛函數更像是“隻提供申明,沒有實作”,是對子類的限制,是“接口繼承”。

C++中的純虛函數也是一種“運作時多态”。

【差別】

純虛函數隻有定義,沒有實作;而虛函數既有定義,也有實作的代碼。

純虛函數一般沒有代碼實作部分,如

virtual void print() = 0;

而一般虛函數必須要有代碼的實作部分,否則會出現函數未定義的錯誤。

包含純虛函數的類不能定義其對象,而包含虛函數的則可以。

繼續閱讀