#include <iostream>
#include <string>
using namespace std;
class Animal
{
public:
virtual void cry()
{
cout<<"What the animals say? :)"<<endl;
}
};
class Mouse : public Animal{
private:
string name;
char sex;
public:
Mouse(string n, char s) : name(n), sex(s){}
virtual void cry()
{
cout << "I am " << name << ", a" << ((sex == 'm')?" male ":" female ") << "mouse. My cry is zhizhizhi.\n";
}
};
class Cat : public Animal{
private:
string name;
public:
Cat(string n) : name(n){}
virtual void cry()
{
cout << "I am " << name << ", a" << " cat. My cry is miaomiaomiao\n";
}
};
class Dog : public Animal{
private:
string name;
public:
Dog(string n) : name(n){}
virtual void cry()
{
cout << "I am " << name << ", a" << " dog. My cry is wangwangwang\n";
}
};
class Giraffe : public Animal{
private:
string name;
char sex;
public:
Giraffe(string n, char s) : name(n), sex(s){}
virtual void cry()
{
cout << "I am " << name << ", a" << ((sex == 'm')?" male ":" female ") << " giraffe. I can't cry because my long neck.\n";
}
};
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;
}
运行结果