/*
*Copyright (c) 2013 ,烟台大学计算机与控制工程学院
*All rights reserved.
*作者:王至超
*完成日期:2014年05月27
*版本号:v1.0
*问题描述:
*样例输入:
*样例输出:
*问题分析:用简单的方法,学会活学活用
*/
#include <iostream>
using namespace std;
class Animal
{
public:
virtual void cry()
{
cout<<"不知哪种动物,让我如何学叫?"<<endl;
}
};
class Mouse:public Animal
{
public:
void cry()
{
if (sex=='m')
{
cout<<"我叫"<<name<<"是一只男老鼠,我的叫声是:吱吱吱!"<<endl;
}
else
{
cout<<"我叫"<<name<<"是一只女老鼠,我的叫声是:吱吱吱!"<<endl;
}
}
Mouse (string,char);
protected:
string name;
char sex;
};
Mouse::Mouse (string nam,char sex1)
{
name=nam;
sex1=sex;
}
class Cat:public Animal
{
public:
void cry()
{
cout<<"我叫"<<name<<"是一只猫,我的叫声是:喵喵喵!"<<endl;
}
Cat(string);
protected:
string name;
};
Cat::Cat (string nam)
{
name=nam;
}
class Dog :public Animal
{
public:
void cry()
{
cout<<"我叫"<<name<<"是一只狗,我的叫声是:汪汪汪!"<<endl;
}
Dog(string);
protected:
string name;
};
Dog::Dog (string nam)
{
name=nam;
}
class Giraffe :public Animal
{
public:
void cry()
{
if (sex=='m')
{
cout<<"我叫"<<name<<"是男长颈鹿,我的脖子太长,发不出声音来"<<endl;
}
else
{
cout<<"我叫"<<name<<"是女长颈鹿,我的脖子太长,发不出声音来"<<endl;
}
}
Giraffe (string,char);
protected:
string name;
char sex;
};
Giraffe::Giraffe (string nam,char sex1)
{
name=nam;
sex1=sex;
}
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;
}