c 程式設計 多型和純虛函式

2021-10-02 21:25:54 字數 1441 閱讀 6643

dog類和cat類繼承animal類

根據使用者輸入的數值,建立相應個數的 dog 物件和 cat物件,然後呼叫 speak() 之後再銷毀。(10分)

題目內容:

編寫三個類

dog類和cat類繼承animal類;

dog類、cat類、animal類各有乙個預設建構函式,分別輸出字串「dog」、「cat」和「animal」。輸出字串後換行。注意三個字串的首字母都是大寫。

在 animal 類中定義純虛函式 speak();

在 dog 和 cat類中覆寫基類的 speak() 函式。dog類的speak函式輸出字串「wang」之後換行;cat類的speak函式輸出字串「miao」之後換行。注意字串「wang」和「miao」都是小寫字母

上述三個類中如果有任何其它函式,則這些函式不直接或者間接輸出任何資訊

編寫主函式

在主函式中接受使用者輸入的乙個整數n(大於0);

建立乙個vector物件v (你可以用其它名字),儲存animal物件的指標。

將存入v中的物件,按照先後次序,逐個呼叫 speak() 函式,然後用 delete 顯式銷毀。(注意:每呼叫乙個物件的 speak() 之後,就立即用 delete 銷毀該物件)。

程式中除了接受使用者輸入的整數之外,沒有任何其它輸入語句;

程式中除了建構函式和speak()的輸出之外,沒有任何其它輸出。

輸入格式:

乙個大於零的整數

輸出格式:

輸出多行資訊,最後一行是空行

沒有任何其它提示資訊

輸入樣例:

輸出樣例:

animal

doganimal

catanimal

doganimal

catwang

miao

wang

miao

注意:輸出結果的最後一行是空行

時間限制:500ms記憶體限制:32000kb

#include

#include

class

animal

virtual

void

speak()

=0;}

;class

dog:

public animal

void

speak

() override

};class

cat:

public animal

void

speak

() override

};intmain()

; i < n; i++

)for

(it = v.

begin()

; it != v.

end(

); it++

)return0;

}

C 多型, 虛函式, 純虛函式

多型 不同物件接收相同的訊息產生不同的動作。多型包括 編譯時多型和 執行時多型 執行時多型是 通過繼承和虛函式來體現的。編譯時多型 運算子過載上。封裝可以隱藏實現細節,使得 模組化 繼承可以擴充套件已存在的 模組 類 它們的目的都是為了 重用。多型也有 重用的功能,還有解決專案中緊耦合的問題,提高程...

C 多型 虛函式 純虛函式和抽象函式

多型 虛函式 純虛函式和抽象函式 多型按字面的意思就是多種形態。當類之間存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。c 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式。其主要是函式的多種形態 乙個函式實現多種功能,形式是乙個乙個覆蓋。例項如下 includeusin...

C 多型 虛函式和純虛函式的關係

c 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式 形成多型必須具備三個條件 1 必須存在繼承關係 2 繼承關係必須有同名虛函式 其中虛函式是在基類中使用關鍵字virtual宣告的函式,在派生類中重新定義基類中定義的虛函式時,會告訴編譯器不要靜態鏈結到該函式 3 存在基類型別的...