天天看點

14.1

#include <iostream>
#include <string>
using namespace std;
class Animal
{
public:
    virtual void cry()
    {
        cout<<"不知哪種動物,讓我如何學叫?"<<endl;
    }
};
class Mouse:public Animal
{
    public:
    Mouse(string nam,char s):name(nam),sex(s){}
    virtual void cry();
    private:
    char sex;
    string name;
    };
void Mouse::cry()
{
    if(sex=='f')
    cout<<"我叫"<<name<<"是一隻母老鼠我的叫聲是吱吱吱!"<<endl;
    else if(sex=='m')
    cout<<"我叫"<<name<<"是一隻男老鼠,我的叫聲是吱吱吱!"<<endl;
    else
    cout<<"輸入有誤!"<<endl;
}
class Dog:public Animal
{
    public:
    Dog(string nam):name(nam){}
    virtual void cry();
    private:
    string name;
};
void Dog::cry()
{
    cout<<"我叫"<<name<<"是一隻狗,我的叫聲是汪汪汪!"<<endl;
}
class Cat:public Animal
{
    public:
    Cat(string nam):name(nam){}
    virtual void cry();
    private:
    string name;
};

void Cat::cry()
{
    cout<<"我叫"<<name<<"是一隻貓,我的叫聲是喵喵喵!"<<endl;
}
class Giraff:public Animal
{
    public:
    Giraff(string nam,char s):name(nam),sex(s){}
    virtual void cry();
    private:
    char sex;
    string name;
};
void Giraff::cry()
    {
        if(sex=='f')
        cout<<"我叫"<<name<<"一隻母長頸鹿,我的脖子太長,不會叫!"<<endl;
        else if(sex=='m')
        cout<<"我叫"<<name<<"是一隻公長頸鹿,我的脖子太長,不會叫!"<<endl;
        else
    cout<<"輸入有誤!"<<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();
    Giraff g1("Gill",'m');
    p=&g1;
    p->cry();
    return 0;
}
           
14.1