您的位置:首页 > 其它

第十三周项目2-动物这样叫——2

2016-06-13 13:42 204 查看
/*

*Copyright (c) 2016,烟台大学计算机学院

*All rights reserved.

*文件名称 :

*作 者 : 刘亚

*完成日期 : 2016年6月3号

*版 本 号 : v6.0

*

*问题描述 :改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除。

*/

#include "iostream"

#include<string>

using namespace std;

class Animal

{

public:

    virtual void cry() = 0;

};

class Mouse : public Animal

{

private:

    string name;

    char sex;

public:

    Mouse(string nam, char s):name(nam),sex(s) {}

    virtual void cry()

    {

        cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"老鼠,我的叫声是:吱吱吱!"<<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()

    {

        cout<<"我叫"<<name<<",是"<<((sex=='m')?"男":"女")<<"长颈鹿,我的脖子太长,发不出声音来!"<<endl;

    }

};

int main( )

{

    Animal *p;

    Mouse m1("Jerry",'m');

    p=&m1;

    p->cry(); //输出: 我叫Jerry,是一只男老鼠,我的叫声是:吱吱吱!

    Mouse m2("Jemmy",'f');

    p=&m2;

    p->cry(); //输出: 我叫Jemmy,是一只女老鼠,我的叫声是:吱吱吱!

    Cat c1("Tom");

    p=&c1;

    p->cry(); //输出: 我叫Tom,是一只猫猫,我的叫声是:喵喵喵!

    Dog d1("Droopy");

    p=&d1;

    p->cry(); //输出: 我叫Droopy,是一条狗狗,我的叫声是:汪汪汪!

    Giraffe g1("Gill",'m');

    p=&g1;

    p->cry(); //输出: 我叫Gill,是男长颈鹿,脖子太长,发不出声音来!

    return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: