純虛函數和抽象類函數
含有純虛函數的類就叫作抽象類,抽象類是不可以實例化對象的(只要存在純虛函數就不能實例化)。spa
在抽象類當中,僅含有純虛函數的類就叫作接口類(沒有數據成員,僅含有成員函數,並且全部code
的成員函數都是純虛函數)。對象
接口類更可能是用來表達一種能力或者協議。blog
純虛函數的定義:接口
1 class CBaseClass { 2 public: 3 CBaseClass(void); 4 virtual ~CBaseClass(void); 5 6 virtual void Fun(void) = 0; // 純虛函數 7 private: 8 };
因爲純虛函數並無函數實體,因此虛函數表當中使用0來做爲標示純虛函數,這也做爲結束標誌的class
0是同樣的。須要注意的是虛函數表中用來表示純虛函數和虛函數表結束的標誌不必定是0,不一樣的平臺數據
多是不同的。協議