#include
#include
using namespace std;
class Animal
{public:
Animal(int l,int w,char s);
void display();
protected:
int length;
int weight;
char sex;
};
Animal::Animal(int l,int w,char s):
length(l),weight(w),sex(s){}
void Animal::display()
{
cout<<"length:"<<length<<endl;
cout<<"weight:"<<weight<<endl;
cout<<"sex:"<<sex<<endl;
}
//陆生动物
class Ter_animal:public Animal
{public:
Ter_animal(int l,int w,char s,int r);
void show();
protected:
int running_speed;
};
Ter_animal::Ter_animal(int a,int b,char s,int r):
Animal(a,b,s),running_speed(r){}
void Ter_animal::show()
{Animal::display();
cout<<"running_speed:"<<running_speed<<endl;
}
//水生动物
class Aqu_animal:public Animal
{public:
Aqu_animal(int l,int w,char s,int g);
void show();
protected:
int swimming_speed;
};
Aqu_animal::Aqu_animal(int a,int b,char s,int g):
Animal(a,b,s),swimming_speed(g){}
void Aqu_animal::show()
{Animal::display();
cout<<"swimming_speed:"<<swimming_speed<<endl;
};
//两栖动物
class Amp_animal:public Animal,Ter_animal,public Aqu_animal
{public:
Amp_animal(int l,int w,char s,int r,int g);
void show();
};
Amp_animal::Amp_animal(int l,int w,char s,int r,int g):
Aqu_animal( l, w, s, g),Ter_animal( l, w, s, r),Animal(l,w,s){}
void Amp_animal::show()
{Animal::display();
cout<<"running_speed:"<<Ter_animal::running_speed<<endl;
cout<<"swimming_speed:"<<Aqu_animal::swimming_speed<<endl;
}
int main()
{Amp_animal amp_animal1(52,22,"f",102,122);
Amp_animal1.show();
return 0;
}
//陆生动物
class Ter_animal: virtual public Animal
//水生动物
class Aqu_animal: virtual public Animal
//两栖动物
class Amp_animal: virtual public Animal, public Ter_animal, public Aqu_animal
(两栖动物类感觉不需要再继承Animal类,可以直接写成 class Amp_animal: public Ter_animal, public Aqu_animal)
另外main函数有两处错误,要改成
int main()
{
Amp_animal amp_animal1(52,22,'f',102,122);
amp_animal1.show();
return 0;
}