利用虛函式設計統一的公共介面(求體積與表面積)

2021-08-09 06:55:01 字數 1141 閱讀 3643

學習了虛函式,我們可以考慮,若要滿足相關物件的需求,要求設計出一組實現公共功能的函式。我們可以將這些函式作為基類的虛函式(或純虛函式),他們定義乙個統一的公共介面。再由該基類派生出若干子類,在各個子類中實現這些虛函式。簡稱:「乙個介面,多種方式」。

我們來看乙個例子:編寫乙個程式計算正方體、球體和圓柱體的表面積和體積。

(1)分析一下,公共的功能是要求這幾個立方體的表面積和體積。

(2)設計乙個公共基類container為抽象類(介面),它包含了這些抽象公共功能。因此,container類中宣告求表面積和體積的純虛函式。另外,container類中定義乙個公共的資料成員radius,此資料可作為球體的半徑、正方體的邊長,圓柱體底面圓半徑。

(3)由container抽象類派生出三個類,即cude、sphere、cylinder,在這三個類中都具有求表面積和體積的重定義。

結構如下圖所示:

程式如下:

#includeusing namespace std;

class container

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

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

};//定義正方體類

class cube :public container

; double su***ce()

double volume() };

//定義球體類

class sphere :public container

; double su***ce()

double volume()

}; //定義圓柱體類

class cylinder :public container

; double su***ce()

double volume() };

int main()

執行結果如下:

統一的訪問介面

在嵌入式開發中,難免要和硬體打交道,方式就是讀寫相應的暫存器。為了便於維護,肯定是要模組開發,分層開發。很多東西都知道,關鍵是執行。工作壓力大,趕進度等等就降低了對 質量的要求。這裡記錄下自己的感受,免得以後再犯。針對暫存器的操作肯定是是要封裝到函式內部的,提供乙個介面,如read reg writ...

開發統一的部落格介面

現在部落格很流行,很多人都在使用部落格,有些人同時擁有幾個不同的部落格 不知你有沒有這樣的煩惱,就是你寫了一篇文章,這時想傳到不同的部落格 上去,就得開啟不同的部落格網頁,在上面發布文章,這樣很煩躁,並且做的是重複的工作。有沒有可能,有沒有可能寫了一篇文章,在乙個地方上傳,就可以在不同的部落格 上面...

介面與虛函式的區別

介面只能宣告,不能實現,虛函式可以。介面 對外提供可以訪問的函式就叫介面,介面不能有實現,只能宣告。虛函式不需要強制被重寫,其本身也包含實現的部分。抽象類就是指定了派生類必須實現的函式 純虛函式 不然編譯不會過的。虛函式的限制 1.虛函式僅適用於有繼承關係的類物件,所以只有類的成員函式才能說明為虛函...