★抽象類:一個類能夠抽象出不一樣的對象來表達一個抽象的概念和通用的接口,這個類不能實例化(創造)對象。函數
★純虛函數(pure virtual):在本類裏不能有實現(描述功能),實現須要在子類中實現。
例:
virtual typeT function_name(parameter_list)=0;
virtual void draw()=0; //畫,純虛函數;
virtual void rotate(double)=0; //旋轉,純虛函數;spa
★抽象類(abstract class):若是一個類包含純虛函數,那麼這個類就叫抽象類。指針
★一個抽象類只能用做基類,只能用做派生,不能實例化(建立)對象。一個類要是包含至少一個純虛函數,則這個類是抽象類。一個抽象類的子類能夠添加更多的數據成員和成員函數。對象
★抽象類的子類能夠仍是抽象類,能夠添加更多的成員函數和成員方法,直到能夠產生對象爲止。繼承
★因爲抽象類不能構造對象,所以它的構造函數不能被單獨調用。它的構造函數只能在子類的成員初始化列表裏面調用。接口
★抽象類不必定有析構函數,若是有必須是虛析構函數。io
★★★一個函數不能有抽象類對象的值參數<參數不能傳值>,這個函數不能有抽象類對象的值返回。然而能夠有抽象類類型的指針和引用能夠做爲參數,一樣抽象類的指針和引用能夠做爲函數的返回值類型。由於他們能夠指向或者引用抽象類的子類對象。function
★純虛函數是在子類裏面被實現的。若是子類沒有實現純虛函數,純虛函數將繼承給子類。那麼這時子類一樣也是一個抽象類。class