
#include <iostream> |
using namespace std; |
class Animal |
{ |
public: |
Animal ( int ); |
virtual ~Animal() {cout<<"析构动物...\n";} |
virtual int GetAge() {return itsage;} |
virtual void Sleep() =0; |
virtual void Propagate() =0; |
virtual void Move() =0; |
virtual void Body() =0; |
virtual void Eat() =0; |
virtual void Show() =0; |
private: |
int itsage; |
}; |
Animal::Animal ( int age ) :itsage ( age ) |
{ |
cout<<"创建动物...\n"; |
} |
class Mammalia:public Animal |
{ |
public: |
Mammalia ( int age ) :Animal ( age ) |
{ |
cout<<"创建哺乳类...\n"; |
} |
virtual ~Mammalia() |
{ |
cout<<"析构哺乳类...\n"; |
} |
virtual void Propagate() |
{ |
cout<<"哺乳类是胎生动物,通过胚胎来繁殖后代。\n"; |
} |
}; |
class Bird:public Animal |
{ |
public: |
Bird ( int age ) :Animal ( age ) |
{ |
cout<<"创建鸟类...\n"; |
} |
virtual ~Bird() |
{ |
cout<<"析构鸟类...\n"; |
} |
virtual void Sleep() |
{ |
cout<<"鸟类喜欢站着睡觉。\n"; |
} |
virtual void Eat() |
{ |
cout<<"极个别鸟类吃肉,其他都是吃素。\n"; |
} |
virtual void Propagate() |
{ |
cout<<"鸟类是卵生动物,通过排卵来繁殖后代。\n"; |
} |
virtual void Move() |
{ |
cout<<"鸟类可以飞...\n"; |
} |
virtual void Body() |
{ |
cout<<"鸟类体表被覆羽毛,前肢变为翼!\n"; |
} |
virtual void Show() |
{ |
cout<<"鸟类的一般寿命为:"<<GetAge() <<"年"<<endl; |
} |
}; |
class Human:public Mammalia |
{ |
public: |
Human ( int age ) :Mammalia ( age ) |
{ |
cout<<"创建人类...\n"; |
} |
virtual ~Human() |
{ |
cout<<"析构人类...\n"; |
} |
virtual void Sleep() |
{ |
cout<<"人类要在床上睡觉。\n"; |
} |
virtual void Eat() |
{ |
cout<<"大多数人不吃生食。\n"; |
} |
virtual void Propagate() |
{ |
cout<<"人类通过胚胎繁殖后代。\n"; |
} |
virtual void Move() |
{ |
cout<<"人类靠两条腿走路...\n"; |
} |
virtual void Body() |
{ |
cout<<"人类体表无毛!\n"; |
} |
virtual void Show() |
{ |
cout<<"人类的一般寿命为:"<<GetAge() <<"年"<<endl; |
} |
}; |
class Pig:public Mammalia |
{ |
public: |
Pig ( int age ) :Mammalia ( age ) |
{ |
cout<<"创建猪类...\n"; |
} |
virtual ~Pig() |
{ |
cout<<"析构猪类...\n"; |
} |
virtual void Sleep() |
{ |
cout<<"猪喜欢在烂泥里睡觉。\n"; |
} |
virtual void Eat() |
{ |
cout<<"猪是杂食类动物。\n"; |
} |
virtual void Propagate() |
{ |
cout<<"猪也通过胚胎繁殖后代。\n"; |
} |
virtual void Move() |
{ |
cout<<"猪靠四条腿走路...\n"; |
} |
virtual void Body() |
{ |
cout<<"猪体表被毛!\n"; |
} |
virtual void Show() |
{ |
cout<<"猪因为要被人宰了吃,所以一般寿命为:"<<GetAge() <<"年"<<endl; |
} |
}; |
int main() |
{ |
Animal*p=0; |
int choice=0; |
bool quit=false; |
while ( 1 ) |
{ |
cout<<"(1)猪类(2)人类(3)鸟类(0)退出"; |
cin>>choice; |
switch ( choice ) |
{ |
case 1: |
p=new Pig ( 1 ); |
break; |
case 2: |
p=new Human ( 80 ); |
break; |
case 3: |
p=new Bird ( 50 ); |
break; |
default: |
quit=true; |
break; |
} |
if ( quit ) |
{ |
break; |
} |
p->Show(); |
p->Eat(); |
p->Propagate(); |
p->Move(); |
p->Sleep(); |
p->Body(); |
cout<<"\n"; |
delete p; |
} |
return 0; |
} |



