十二周——多态性——项目一(1)动物怎么叫

来源:互联网 发布:网络维护员的职责 编辑:程序博客网 时间:2024/05/05 10:45

问题及代码:

/* *Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:lily.cpp *作者:李莉 *完成日期:2015年5月24日 *版本号:v1.0 *问题描述:、根据给出的main()函数和运行结果的提示,设计出相关的各个类,注意观察运行结果,提取出每个类中需要的数据成员,并匹配上需要的成员函数。*程序输入:无输入 *程序输出:运行结果 */  #include<iostream>using namespace std;class Animal{public:    virtual void cry()    {        cout<<"不知哪种动物,让我如何学叫?"<<endl;    }};class Mouse:public Animal{private:    string name;    char sex;public:    Mouse(string nam,char s):name(nam),sex(s) {};    virtual void cry()    {        if(sex=='m')            cout<<"俺滴名字叫"<<name<<",俺是一只帅帅哒男老鼠,俺滴叫声是吱吱"<<endl;        else            cout<<"俺滴名字叫"<<name<<",俺是一只美美哒女老鼠,俺滴叫声是吱吱"<<endl;    }};class Cat:public Animal{private:    string name;public:    Cat(string nam):name(nam) {};    virtual void cry()    {        cout<<"俺滴名字是"<<name<<",是一只萌萌哒的喵喵,俺滴叫声是喵喵"<<endl;    }};class Dog:public Animal{private:    string name;public:    Dog(string nam):name(nam) {};    virtual void cry()    {        cout<<"俺滴名字是"<<name<<",是一只傲娇哒汪汪,俺滴叫声是汪汪"<<endl;    }};class Giraffe:public Animal{private:    string name;    char sex;public:    Giraffe(string nam,char s):name(nam),sex(s) {};    virtual void cry()    {        if(sex=='m')        cout<<"俺滴名字是"<<name<<",是一只美美哒长颈鹿菇凉,俺不会叫,因为俺滴脖子长"<<endl;        else        cout<<"俺滴名字是"<<name<<",是一只帅帅哒长颈鹿男生,俺不会叫,因为俺滴脖子长"<<endl;    }};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;}


运行结果:

0 0
原创粉丝点击