基本概念和理解
純虛函數是在一個基類(父類)中說明的虛函數,在基類中沒有定義,要求任何派生類(子類)都可以有自己的版本。
抽象基類則表示至少包含一個純虛成員函數。
純虛函數的說明形式:virtual 類型 函數名(參數表)=0;
此時的0 代表的意思是,指向函數體的指針的賦值爲0;
class point{......};
class xxx; //抽象類
{pointer center;
..........
public:
virtual void rotate(int) = 0;//純虛函數
virtual void draw()=0;//純虛函數
xxx x;//純虛函數不能建立對象
xxx *p;//可以聲明抽象類的指針
xxx f();//抽象類是不能作爲返回類型的
void g(xxx);//抽象類是不能作爲參數的
雖然不能聲明抽象類的實例,也不能將其作爲參數類型,函數返回類型或顯示轉換類型,但是可以**聲明抽象類的指針和引用**。
從抽象類派生出來的類必須重新定義純虛函數。
對於C++,不像java一樣有接口。
C++沒有接口,則我們可以把抽象基類看成是接口。