純虛函數和抽象類簡介

基本概念和理解

純虛函數是在一個基類(父類)中說明的虛函數,在基類中沒有定義,要求任何派生類(子類)都可以有自己的版本。

抽象基類則表示至少包含一個純虛成員函數。

純虛函數的說明形式: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++沒有接口,則我們可以把抽象基類看成是接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章