1、在一個類中定義一個純虛函數,則這個類是抽象類。純虛函數在基類中是不實現的,只是提供一個接口。在子類中分別去實現。在很多情況下,類本身是不生成對象的。動物作爲一個基類可以派生出老虎、孔雀等子類,但動物本身生成對象明顯不合常理。
純虛函數就是基類只定義了函數體,沒有實現過程,定義方法如: virtual void Eat() = 0; 不要
在cpp中定義;純虛函數相當於接口,不能直接實例化,需要派生類來實現函數定義;
子類中必須覆蓋基類的純虛函數;
含有純虛函數的類不能被實例化;
含有純虛函數的類一定是抽象類;
基類的純虛函數沒有函數體。
而:類裏聲明爲虛函數的話,這個函數是實現的,哪怕是空實現,它的作用就是爲了能讓這個函數在它的子類裏面可以被重載,這樣的話,這樣編譯器就可以使用後期綁定來達到多態了。
3、虛函數是爲了繼承接口和默認行爲,可以繼承父類的實現,當然自己也可以去實現。
純虛函數只是繼承接口,行爲必須重新定義。