第十四周 项目1抽象基类
生活随笔
收集整理的這篇文章主要介紹了
第十四周 项目1抽象基类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
* Copyright (c) 2011, 煙臺大學計算機學院
* All rights reserved.
* 作 者:王靜
* 完成日期:2013 年 6 月 2 日
* 版 本 號:v1.0
* 輸入描述:
* 問題描述:1、根據給出的main()函數和運行結果的提示,設計出相關的各個類,注意觀察運行結果,提取出每個類中需要的數據成員,并 匹配上需要的成員函數。2、顯然,Animal設計為抽象類更合適,Animal不需要能夠實例化,是專門作基類使用的。改造程序,使Animal設計為抽象類,這時 main()函數中p = newAnimal();將出錯,將此行刪除。3、每一個Animal的派生類都有一個“名字”數據成員,這一共有的成員完全可以由基類提供改造上面的程序,將這一數據成員作為抽 象類Animal數據成員被各派生類使用。
* 程序輸出:
* 問題分析:
* 算法設計:略
*/
#include <iostream>
#include <string>
using namespace std;
class Animal
{
public:Animal(string n):name(n){}virtual void cry(){cout<<"不知哪種動物,讓我如何學叫?"<<endl;}
protected:string name;
};
class Mouse:public Animal
{
public:Mouse(string n,char s):Animal(n),sex(s){}void cry(){cout<<"我叫"<<name<<",是一只";if(sex='m')cout<<"男";else cout<<"女";cout<<"老鼠,我的叫聲是:吱吱吱!"<<endl;}char sex;
};
class Cat:public Animal
{
public:Cat(string n):Animal(n){}void cry(){cout<<"我叫"<<name<<",是一只貓,我的叫聲是:喵喵喵!"<<endl;}
};
class Dog:public Animal
{
public:Dog(string n):Animal(n){}void cry(){cout<<"我叫"<<name<<",是一只狗,我的叫聲是:汪汪汪!"<<endl;}
};
class Giraffe:public Animal
{
public:Giraffe(string n,char s):Animal(n),sex(s){}void cry(){cout<<"我叫"<<name<<",是";if(sex='m')cout<<"男";else cout<<"女";cout<<"長頸鹿,我的脖子太長,發不出聲音來!"<<endl;}char sex;
};
int main( )
{Animal *p;//p = new Animal();//p->cry();Mouse m1("Jerry",'m');p=&m1;p->cry();Mouse m2("Jemmy",'f');p=&m2;p->cry();Cat c1("Tom");p=&c1;p->cry();Dog d1("Droopy");p=&d1;p->cry();Giraffe g1("Gill",'m');p=&g1;p->cry();return 0;
}
運行結果:
總結
以上是生活随笔為你收集整理的第十四周 项目1抽象基类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AP计算机科学笔记,AP想5分,不看过来
- 下一篇: 智能网联汽车——深度学习与无人驾驶(一)