C 設計抽象基類的策略

2021-06-20 19:20:16 字數 779 閱讀 3471

(1)分析相關物件的需求,設計出一組實現公共功能的函式。

(2)將這些函式作為基類的虛函式(或純虛函式),它們定義了乙個

統一的公共介面。

(3)由該類基類派生出若干子類,在各子類中實現這些虛函式。

#includeusing namespace std;

class container //抽象類

virtual double su***ce_area()=0;//純虛函式

virtual double volume()=0;//純虛函式

};class cube:public container

double su***ce_area()

double volume()

};class sphere:public container

double su***ce_area()

double volume()

};class cylinder:public container

double su***ce_area()

double volume()

};int main()

{ container *p;

cube obj1(5);

sphere obj2(5);

cylinder obj3(5,5);

p = &obj1;

cout<<"正方體表面積:"

C 抽象基類

為什麼c 要定義抽象基類?c 為什麼要定義抽象基類?抽象類就是類裡定義了純虛成員函式的類。純虛函式只提供了介面,並沒有具體實現。抽象類不能被例項化,通常是作為基類供子類繼承,子類中重寫虛函式,實現具體的介面。為什麼要定義抽象基類呢?依我所見主要有以下原因 1.最重要的原因是,可以將介面與實現分離。介...

C 學習 抽象基類

抽象基類 abstract base class abc c 提供純虛函式提供未實現的方法,純虛函式宣告的結尾處為 0,例如 class baseellipse virtual baseelipse void move int nx int ny virtual double area const ...

C 抽象基類與虛基類(C primer)

c primer plus p508,抽象基類 c primer plus p556,虛基類 抽象基類是解決如下問題 加入現在需要開發乙個圖形類,表示圓與橢圓 注意,圓是一種特殊的橢圓 所以初步考慮從橢圓類中派生出圓類。但是現在遇到乙個問題,圓與橢圓的面積計算公式不同,所以需要建立乙個abc,抽象出...