1:純虛函式和抽象類
1>純虛函式是乙個在基類中說明的虛函式,在基類中沒有定義,要求任何派生類都定義自己的版本
2>純虛函式為各派生類提供乙個公共介面(介面的封裝和設計、軟體的模組功能劃分)
3>純虛函式說明形式:
virtual 型別 函式名(參數列)=0;
4>乙個具有純虛函式的基類稱為抽象類
話不多說,直接上**:
#include using namespace std;
class figure
;class cricle :public figure
virtual void getarea()
private:
int r;
};class tri :public figure
virtual void getarea()
private:
int h;
int d;
};class squre :public figure
virtual void getarea()
private:
int w;
int h;
};void showarea(figure *base)
int main(void)
編譯執行,結果如下:
需要注意的是:
1>抽象類不可以建立物件; eg: figure f1 //error
2>可以宣告抽象類的指標; eg: figure *f1 //ok
3>抽象類不能作為返回值型別;eg: figure fun() //error
4>抽象類不能作為引數型別;eg:void fun(figure)//error
5>可以宣告抽象類的引用;eg:figure & fun(figure &f1)//ok
如果乙個類不想成為抽象類,需要實現其基類所有的純虛函式,否則就是抽象類。
純虛函式和抽象類筆記
在多型中,通常父類中虛函式的實現是毫無意義的,主要通過呼叫子類重寫的內容。因此可以將虛函式改為純虛函式。純虛函式語法 virtual 返回值型別 函式名 引數列表 0 當類中有了純虛函式,這個類也稱為抽象函式 抽象函式特點 1.無法例項化物件 2.子類必須重寫抽象類的純虛函式,否則也屬於抽象類 in...
C 純虛函式和抽象類
本文 在介紹抽象類之前,我們先介紹一下純虛函式。1.純虛函式 在基類中僅僅給出宣告,不對虛函式實現定義,而是在派生類中實現。這個虛函式稱為純虛函式。普通函式如果僅僅給出它的宣告而沒有實現它的函式體,這是編譯不過的。純虛函式沒有函式體。純虛函式需要在宣告之後加個 0 class 基類名 2.抽象類 含...
c 純虛函式和抽象類
在c 多型中,父類的作用就是提供乙個虛函式類方便進行多型,那麼實際上父類的用處幾乎等於沒有,所以c 提供了純虛函式和抽象類 純虛函式的語法 virtual 返回值型別 函式名 引數列表 0 只要在類中建立出純虛函式,那麼這個類就會變成抽象類,無法例項化物件,也就是無法建立物件,同時如果他的子類沒有重...