高階多型(二) 純虛函式與抽象資料型別 ADT

2021-07-08 15:18:28 字數 728 閱讀 3283

當你要建立幾個類,分別表示矩形,圓形,橢圓形等圖形時,每乙個類都會去實現獲取面積(getarea()),繪製(draw())等通用介面,因此想到了繼承。

我們可以定義乙個形狀類shape,但是shape並不是乙個實體,僅僅是抽象出來的概念,您也不想去建立shape的物件,僅僅為了預定義同類的介面而已。

此時就需要用到純虛函式,shape也被稱為抽象資料型別adt(abstract data type)。

如果子類繼承自adt類,子類必須實現基類的所有純虛函式。

class shape

; virtual ~shape(){};

virtual void draw() = 0; //子類必須實現該方法

virtual void getarea() = 0;//子類必須實現該方法

private:

};class rectangle : public shape

; ~rectangle(){};

void draw()

void getarea()

private:

};class circle : public shape

; ~circle(){};

void draw()

void getarea()

private:

};int _tmain(int argc, _tchar* argv)

多型,虛函式,純虛函式,抽象類

c 中,實現多型有以下方法 虛函式,抽象類,過載,覆蓋 多型性在object pascal和c 中都是通過虛函式 virtual function 實現的。這麼一大堆名詞,實際上就圍繞一件事展開,就是多型,其他三個名詞都是為實現c 的多型機制而提出的一些規則,下面分兩部分介紹,第一部分介紹 多型 第...

多型性(純虛函式與抽象類)

將乙個虛函式初始化為0之後,該函式就變成了純虛函式。如 viurtual double area 0 這個虛函式是無任何的功能,不能直接來呼叫,因為它是抽象的,只有被子類繼承並賦予功能後才可呼叫。乙個類可以有多個純虛函式,但是只要有乙個純虛函式給類就是抽象類。抽象類只是乙個概念,就如同人類一樣,沒有...

C 練習 多型 純虛函式與抽象類

純虛函式與抽象類 含有純虛函式的類,稱為抽象基類,不可實列化。即不能建立物件,存在的意義就是被繼承,提供族類的公共介面。1 純虛函式與抽象類 23 include 4 5using namespace std 67 class shape 1112 class cfx public shape 18...