第十三周實驗報告二

來源:互聯網
上載者:User
<span style="font-size:18px;">/*【任務】下面給出了基類Animal和main()函數。(任務.1)根據main()函數給出的注釋提示,設計出相關的各個類。(任務.2)顯然,Animal設計為抽象類別更合適,Animal不需要能夠執行個體化,是專門作基類使用的。改造程式,使Animal設計為抽象類別,這時main()函數中p = new Animal();將出錯,將此行刪除。(任務.3)每一個Animal的衍生類別都有一個“名字”資料成員,改造上面的程式,將這一資料成員作為抽象類別Animal資料成員被各衍生類別使用。*/</span>

來源程式及運行結果

 

<span style="font-size:18px;">#include "iostream"#include<string>using namespace std;class Animal{public:virtual void cry() {cout<<"不知哪種動物,讓我如何學叫?"<<endl;}};class Mouse :public Animal{private:string name;public:Mouse(string na):name(na){};void cry(){cout<< "我叫" <<name<< ",是一隻老鼠,我的叫聲是:吱吱吱!" <<endl;}};class Cat:public Animal{private:string name;public:Cat(string na):name(na){};void cry(){cout<<"我叫"<<name<<",是一隻貓,我的叫聲是:喵喵喵!"<<endl;}};class Dog :public Animal{private:string name;public:Dog(string na):name(na){};void cry(){cout<< "我叫" <<name<<",是一隻狗,我的叫聲是:汪汪汪!"<<endl;}};class Giraffe :public Animal{private:string name;public:Giraffe(string na):name(na){};void cry(){cout<<"我叫"<<name<<",是一隻長頸鹿,脖子太長,發不出聲音!"<<endl;}};int main( ){Animal *p; p = new Animal(); p->cry(); //輸出: 不知哪種動物,讓我如何學叫?(問題出自此處)Mouse m("Jerry"); p=&m; p->cry(); //輸出: 我叫Jerry,是一隻老鼠,我的叫聲是:吱吱吱!Cat c("Tom");  p=&c; p->cry(); //輸出: 我叫Tom,是一隻貓,我的叫聲是:喵喵喵!Dog d("Droopy");  p=&d; p->cry(); //輸出: 我叫Droopy,是一條狗,我的叫聲是:汪汪汪!Giraffe g("Gill");  p=&g; p->cry(); //輸出: 我叫Gill,是長頸鹿,脖子太長,發不出聲音來!system("pause");return 0;}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.