純虛函式與基類指標陣列的應用

2021-09-07 20:28:12 字數 1546 閱讀 7075

使用虛函式是實現動態聯編的基礎。正確使用虛函式,需要滿足下列條件:

(1)具有符合型別相容規則的公有派生類層次結構。

(2)在派生類中重新定義基類的虛函式,對其進行覆蓋。

(3)通過基類指標或基類引用訪問虛函式。

1、題目內容:

定義抽象基類shape, 其中純虛函式printname()輸出幾何圖形的名稱和相應的成員資料、純虛函式printarea()計算幾何圖形的面積。並由shape類派生出5個派生類:circle(圓形),資料成員為半徑、square(正方形) ,資料成員為邊長、rectangle(長方形) ,資料成員為長和寬、trapezoid(梯形) ,資料成員為上底、下底和高、********(三角形) ,資料成員為底和高。測試過程,定義乙個指向基類的指標陣列,使其每個元素指向乙個動態產生的派生類物件,分別呼叫相應的成員函式顯示各個幾何圖形的屬性及面積,最終輸出總面積值。

輸入格式:

依次輸入圓半徑、正方形邊長、長方形長寬、梯形上底下底和高、三角形底邊和高,均為實數。

輸出格式:

請參考輸出樣例,建議直接複製樣例中的部分文字貼上進自己的**。圓周率取 3.14159

注意輸出中的標點符號、空格。

輸入樣例:105

2 41 2 3

4 3輸出樣例:

圓:半徑=10,面積:314.159

正方形:邊長=5,面積:25

長方形:長=2,寬=4,面積:8

梯形:上底=1,下底=2,高=3,面積:4.5

三角形:底邊=4,高=3,面積:6

總面積:357.659

#includeusing namespace std;

class shape

;class circle:public shape

void printname()

cout<

2.、抽象寵物類的實現

題目內容:

定義抽象寵物類pet,其中資料成員包括:名字,年齡和顏色;成員函式包括:建構函式;獲取成員資料值的函式;純虛函式speak和純虛函式getinfo; 定義pet的派生類cat和dog,其中speak函式分別顯示貓和狗的叫聲,而getinfo函式分別輸出cat和dog的屬性。主函式中定義pet指標變數,分別指向動態生成的cat和dog物件,並通過指標分別呼叫getinfo函式和speak函式,觀察並分析輸出結果。

輸入格式:

貓和狗的資訊

輸入樣例:

mikey 2 blue

benben 1 black

輸出樣例:

貓的名字:mikey

貓的年齡:2

貓的顏色:blue

貓的叫聲:miao!miao!

狗的名字:benben

狗的年齡:1

狗的顏色:black

狗的叫聲:wang!wang!

純虛函式與基類指標陣列的應用

題目內容 定義抽象基類shape,其中純虛函式printname 輸出幾何圖形的名稱和相應的成員資料 純虛函式printarea 計算幾何圖形的面積。並由shape類派生出5個派生類 circle 圓形 資料成員為半徑 square 正方形 資料成員為邊長 rectangle 長方形 資料成員為長和...

虛基類 虛函式和純虛基類

首先看乙個例子 class base class child1 public base class child2 public base void main else p print 函式呼叫的時候,檢視虛表,根據p的位址首先從虛表裡面查詢要呼叫的函式 這裡呼叫child2的print 函式 ret...

C 虛基類 虛函式與純虛函式

虛基類 在說明其作用前先看一段 classa class b publica classc publica classd public b publicc void main 從 中可以看出類b c都繼承了類a的ivalue成員,因此類b c都有乙個成員變數ivalue 而類d又繼承了b c,這樣類...