文档详情

c++实验8 继承与派生上机练习题.docx

发布:2025-04-28约4.16千字共6页下载文档
文本预览下载声明

定义一个哺乳动物类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

显示全部
相似文档