c++实验8 继承与派生上机练习题.docx
定义一个哺乳动物类Mammal,并从中派生出一个狗类Dog,下面给出Mammal类得定义,要求:
添加Dog类得颜色数据成员,访问属性为私有,通过SetColor和GetColor成员函数来对颜色进行设置和获取。
分别为基类和派生类添加相应得构造函数(有参、无参)和析构函数,并进行测试。
classMammal
{
protected:
?intitsAge;
intitsWeight;
public:
intGetAge(){returnitsAge;}
voidSetAge(intage){itsAge=age;}
intGetWeight(){returnitsWeight;}
?voidSetWeight(intweight){itsWeight=weight;}
};
classDog:publicMammal
{
?//定义Dog类得数据成员和成员函数
};
改:
#includeiostream、h
#include<string
usingnamespacestd;
classMammal
{
protected:
intitsAge;
?intitsWeight;
public:
?Mammal();
~Mammal();
intGetAge(){returnitsAge;}
voidSetAge(intage){itsAge=age;}
?intGetWeight(){returnitsWeight;}
voidSetWeight(intweight){itsWeight=weight;}
};
classDog:publicMammal
{
protected:
?charitscolor[20];
public:
?Dog();
?voidSetcolor(char*color){strcpy(itscolor,color);}
?voidgetcolor(){cout<"狗得颜色"itscolor<endl;}
?//定义Dog类得数据成员和成员函数
};
////////////////////////
Mammal::Mammal()
{
intage1,weight1;
cout<请输入动物得年龄:<endl;
cin>>age1;
SetAge(age1);
cout<请输入动物得体重:"<endl;
cin>>weight1;
SetWeight(weight1);
}
Mammal::~Mammal()
{
coutDestructorcalled、"<endl;
}
Dog::Dog()
{charcolor[20];
?cout<请输入狗得颜色:"endl;
cincolor;Setcolor(color);
cout<"狗得颜色<itscolor<体重GetWeight()"年龄<GetAge()<endl;
}
voidmain()
{
Dogdog1;
}
(4)设计人员基类Person。其成员包括:
数据成员:姓名(字符数组)、性别(字符数组)和年龄(整型)
成员函数:SetPerson,设置人员数据函数;
DisplayPerson,显示人员数据函数;
设计派生类1:Teacher,派生于Person。新增成员包括:
数据成员:职称(字符数组)、教研室(字符数组)和所授课程(字符数组)
成员函数:SetTeacher,设置数据成员函数;
DisplayTeacher,显示数据成员函数;
设计派生类2:Student,派生于Person。新增成员包括:
数据成员:专业(字符数组)、班级(字符数组)和类别(int)
其中类别取值:1(本科生)、2(硕士生)、3(博士生)
成员函数:SetStudent,设置数据成员函数;
DisplayStudent,显示数据成员函数;
设计派生类3:PostDoctor(博士后),多重继承于Student与Teacher。新增成员包括:
数据成员:无
成员函数:SetPostDoctor,设置数据成员函数;
DisplayPostDoctor,显示数据成员函数;
主函数:
输入并输出一个教师、一个本科生、一个博士后数据。
#includeiostream、h>
#includestring>
usingnamespacestd;
#definen20
////////////类得定义
classPerson
{
protected:
?charname[n];
?charsex[n];
intage;
public:
?Person();
?voidsetperson();
voidd