第十三周上机实践项目2(3):动物这样叫

来源:互联网 发布:2016淘宝排名新规则 编辑:程序博客网 时间:2024/05/16 06:24
/* *Copyright(c) 2016.烟台大学计算机与控制工程学院 *ALL rights  reserved. *文件名称:cpp.cpp *作者:  赵子琳 *完成日期:2016年6月15日 *问题描述:每一个Animal的派生类都有一个“名字”数据成员,这一共有的成员完全可以由基类提供改造上面的程序,  *将这一数据成员作为抽象类Animal数据成员被各派生类使用。  */#include <iostream>  using namespace std;  class Animal  {  protected:      string name;  public:      Animal(string nam):name(nam){}      virtual void cry()=0;  };    class Mouse:public Animal  {  private:      char sex;  public:      Mouse(string nam,char se):Animal(nam),sex(se){}     virtual void cry()       {        cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"老鼠,我的叫声是:吱吱吱!"<<endl;       }  };    class Cat:public Animal  {  public:      Cat(string nam):Animal(nam){}     virtual void cry()      {        cout<<"我叫"<<name<<"是一只猫,我的叫声是:吱吱吱!"<<endl;       }  };    class Dog:public Animal  {  public:      Dog(string nam):Animal(nam){}      virtual void cry()      {        cout<<"我叫"<<name<<"是一只狗,我的叫声是:汪汪汪!"<<endl;       }  };    class Giraffe:public Animal  {  private:      char sex;  public:      Giraffe(string nam,char se):Animal(nam),sex(se){}      virtual void cry()       {       cout<<"我叫"<<name<<",是"<<((sex=='m')?"男":"女")<<"长颈鹿,我的脖子太长,发不出声音来!"<<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