一、純虛函數
純虛函數一種特殊的虛函數,在許多情況下在基類中不對虛函數做出有意義的實現,而是把它定義為純虛函數,它的實現由派生類實現
格式:virtual 返回類型 函數名(參數列表)=0;
注意事項
純虛函數不能實現,沒有函數體,其實現由子類去實現各自的功能版本
純虛函數可以在任何訪問域下
包含純虛函數的類還可以包含其他成員/方法
純虛函數可以不在派生類中實現,則派生類接著作為抽象類存在
析構函數不能為純虛函數,因為擁有純虛函數的類的派生類對象在釋放時,會調用基類的析構函數
二、抽象類
包含純虛函數的類稱為抽象類
抽象類包含純虛函數,不能定義對象,只能被繼承
三、接口類
接口類也是抽象類的一部分,類中所有成員函數都是公用并且都是虛函數
接口類類似于一種接口,其中的方法都讓子類各自去實現
class CAnimal {public:virtual void Bark() = 0;virtual void Sleep() = 0;};class CDog :public CAnimal {public:virtual void Bark() override {
};virtual v