您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > c++实验8-继承与派生上机练习题
1.定义一个哺乳动物类Mammal,并从中派生出一个狗类Dog,下面给出Mammal类的定义,要求:(1)添加Dog类的颜色数据成员,访问属性为私有,通过SetColor和GetColor成员函数来对颜色进行设置和获取。(2)分别为基类和派生类添加相应的构造函数(有参、无参)和析构函数,并进行测试。classMammal{protected:intitsAge;intitsWeight;public:intGetAge(){returnitsAge;}voidSetAge(intage){itsAge=age;}intGetWeight(){returnitsWeight;}voidSetWeight(intweight){itsWeight=weight;}};classDog:publicMammal{//定义Dog类的数据成员和成员函数};改:#includeiostream.h#includestringusingnamespacestd;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狗的颜色itscolorendl;}//定义Dog类的数据成员和成员函数};////////////////////////Mammal::Mammal(){intage1,weight1;cout请输入动物的年龄:endl;cinage1;SetAge(age1);cout请输入动物的体重:endl;cinweight1;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#includestringusingnamespacestd;#definen20////////////类的定义classPerson{protected:charname[n];charsex[n];intage;public:Person();voidsetperson();voiddisplayperson();};classTeacher:virtualpublicPerson{protected:charjob[n];charroom[n];charsubject[n];public:Teacher();voidsetteacher();voiddisplayteacher();};classStudent:virtualpublicPerson{protected:charmajor[n];charbanji[n];intleibie;public:Student();voidsetstudent();voiddisplaystudent();};classPostdoctor:publicTeacher,publicStudent{public:Postdoctor();voidsetpostdoctor();voiddisplaypostdoctor();};/////////////结构函数Person::Person(){setperson();}Teacher::Teacher(){setteacher();}Student::Student(){setstudent();}Postdoctor::Postdoctor(){}//////////////////设置数据//////////////////voidPerson::setperson(){cout*****姓名:;cinname;cout*****性别:;cinsex;cout*****年龄:;cinage;}voidTeacher::setteacher(){cout*****职称:;cinjob;cout*****教研室:;cinroom;cout*****所授课程:;cinsubject;}voidStudent::setstudent(){cout*****专业:;cinmajor;cout*****班级:;cinbanji;cout*****类别(1本科2硕士3博士):;cinleibie;}/////////////数据显示///////////voidPerson::displayperson(){cout姓名:name性别:sex年龄:age;}voidTeacher::displayteacher(){displayperson();cout职称:job教研室:room所授课程:subjectendl;}voidStudent::displaystudent(){displayperson();cout专业:major班级:banji类别:leibieendl;}voidPostdoctor::displaypostdoctor(){displayperson();cout职称:job教研室:room所授课程:subject专业:major班级:banji类别:博士后endl;}///////////////////voidmain(){cout您正在输入一个老师的信息:endl;Teachert1;cout***************************************************************************syy割endl;cout您正在输入一个学生的信息:endl;Students1;cout***************************************************************************syy割endl;cout您正在输入一个博士后的信息:endl;Postdoctorp1;cout***************************************************************************syy割endl;coutendl;t1.displayteacher();coutendl;s1.displaystudent();coutendl;p1.displaypostdoctor();}
本文标题:c++实验8-继承与派生上机练习题
链接地址:https://www.777doc.com/doc-5279910 .html