C 動物園(虛函式與多型)

2021-10-06 02:25:28 字數 1957 閱讀 8641

題目描述某個動物園內,有老虎、狗、鴨子和豬等動物,動物園的管理員為每個動物都起了乙個名字,並且每個動物都有年齡、體重等資訊。每到餵食的時候,不同的動物都會叫喚(speak)。

每種動物的叫喚聲均不同,老虎的叫喚聲是「aooo」,狗的叫喚聲是「wangwang」,鴨子的叫喚聲是「gaga」,豬的叫喚聲是「hengheng」。

定義乙個animal的基類,animal類有函式speak(),並派生老虎、狗、鴨子和豬類,其能發出不同的叫喚聲(用文字資訊輸出叫聲)。

編寫程式,輸入動物名稱、名字、年齡,讓動物園內的各種動物叫喚。

要求:只使用乙個基類指標,指向生成的物件並呼叫方法。

輸入

測試案例的個數

第一種動物的名稱 名字 年齡

第二種動物的名稱 名字 年齡

輸出

輸出相應動物的資訊

如果不存在該種動物,輸出there is no 動物名稱 in our zoo. ,具體輸出參考樣例輸出

樣例輸入

4tiger jumpjump 10

pig piglet 4

rabbit labi 3

duck tanglaoya 8

樣例輸出

hello,i am jumpjump,aooo.

hello,i am piglet,hengheng.

there is no rabbit in our zoo.

hello,i am tanglaoya,gaga.

#include

#include

using

namespace std;

class

animal

virtual

void

speak()

;virtual

~animal()

};class

tiger

:public animal

virtual

void

speak()

};class

dog:

public animal

virtual

void

speak()

};class

duck

:public animal

virtual

void

speak()

};class

pig:

public animal

virtual

void

speak()

};intmain()

if(!strcmp

(animal,

"dog"))

if(!strcmp

(animal,

"duck"))

if(!strcmp

(animal,

"pig"))

if(i==0)

}return0;

}

加字首#include

strcmp

(str1,str2)

;

比較字串str1和str2的大小,如果str1小於str2,返回值就<0,反之如果str1大於str2,返回值就》0,如果str1等於str2,返回值就=0.

如果和某乙個具體的字串比較需要加雙引號,如本題的

C 虛函式與多型

1.1 虛函式概念 1.定義 在乙個類的成員函式前面加上virtual關鍵字,則該函式就稱為虛函式。2.如果乙個函式不是類的成員函式,則該函式不能定義為虛函式。即就是類外面不能使用virtual關鍵字 1.2 純虛函式與抽象類 1.純虛函式 在虛函式的後面加上 0 virtual void disp...

c 多型與虛函式

多型按字面的意思就是多種形態。當類之間存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。c 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式。下面的例項中,基類 shape 被派生為兩個類,如下所示 include using namespace std class sha...

C 多型與虛函式

這一篇介紹一下 c 物件導向三大特徵之一的多型 之前面試某大廠的實習生被問到多型,後來又了解到一些設計模式,才體會到多型的強大,在這裡把對多型的一點點淺顯認識總結一下 虛表 class test cout sizeof test endl test p new test p vfunc 將類指標p強...