第十三周项目二,动物这样叫2

来源:互联网 发布:易语言聊天软件源码 编辑:程序博客网 时间:2024/06/05 02:28
/**Copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称 :*作 者 : 刘默涵
*完成日期 : 2016年6月2号*版 本 号 : 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;}<img src="http://img.blog.csdn.net/20160602081232168?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
0 0
原创粉丝点击