《最新c++实验8-继承与派生上机练习题.doc》由会员分享,可在线阅读,更多相关《最新c++实验8-继承与派生上机练习题.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品资料c+实验8-继承与派生上机练习题.1. 定义一个哺乳动物类Mammal,并从中派生出一个狗类Dog,下面给出Mammal类的定义,要求:(1) 添加Dog类的颜色数据成员,访问属性为私有,通过SetColor和GetColor成员函数来对颜色进行设置和获取。(2) 分别为基类和派生类添加相应的构造函数(有参、无参)和析构函数,并进行测试。class Mammalprotected:int itsAge;int itsWeight;public:int GetAge()return itsAge;void SetAge(int age) itsAge=age;int GetWeight(
2、) return itsWeight;void SetWeight(int weight) itsWeight= weight; ;class Dog : public Mammal/定义Dog类的数据成员和成员函数;改:#include #include using namespace std;class Mammalprotected:int itsAge;int itsWeight;public:Mammal();Mammal();int GetAge()return itsAge;void SetAge(int age) itsAge=age;int GetWeight() retur
3、n itsWeight;void SetWeight(int weight) itsWeight= weight; ;class Dog : public Mammalprotected:char itscolor20;public:Dog();void Setcolor(char *color) strcpy(itscolor,color); void getcolor()cout狗的颜色itscolorendl;/定义Dog类的数据成员和成员函数;/Mammal:Mammal()int age1,weight1;cout请输入动物的年龄:age1;SetAge(age1);cout请输入动
4、物的体重:weight1;SetWeight(weight1);Mammal:Mammal()coutDestructor called.endl;Dog:Dog()char color20;cout请输入狗的颜色:color;Setcolor(color);cout狗的颜色itscolor体重GetWeight()年龄GetAge()endl;void main()Dog dog1;(4)设计人员基类Person。其成员包括:数据成员:姓名(字符数组)、性别(字符数组)和年龄(整型)成员函数:SetPerson,设置人员数据函数;DisplayPerson,显示人员数据函数;设计派生类1:T
5、eacher,派生于Person。新增成员包括:数据成员:职称(字符数组)、教研室(字符数组)和所授课程(字符数组)成员函数:SetTeacher,设置数据成员函数;DisplayTeacher,显示数据成员函数;设计派生类2:Student,派生于Person。新增成员包括:数据成员:专业(字符数组)、班级(字符数组)和类别(int)其中类别取值:1(本科生)、2(硕士生)、3(博士生)成员函数:SetStudent,设置数据成员函数;DisplayStudent,显示数据成员函数;设计派生类3:PostDoctor(博士后),多重继承于Student与Teacher。新增成员包括:数据成员
6、:无成员函数:SetPostDoctor,设置数据成员函数;DisplayPostDoctor,显示数据成员函数;主函数:输入并输出一个教师、一个本科生、一个博士后数据。#include #include using namespace std;#define n 20/类的定义class Personprotected:char namen;char sexn;int age;public:Person();void setperson();void displayperson();class Teacher :virtual public Personprotected:char jobn
7、;char roomn;char subjectn;public :Teacher();void setteacher();void displayteacher();class Student:virtual public Personprotected:char majorn;char banjin;int leibie;public :Student();void setstudent();void displaystudent();class Postdoctor:public Teacher,public Studentpublic :Postdoctor();void setpos
8、tdoctor();void displaypostdoctor();/结构函数Person:Person()setperson();Teacher:Teacher()setteacher();Student:Student()setstudent();Postdoctor:Postdoctor()/设置数据/void Person:setperson()cout*name;cout*sex;cout*age;void Teacher:setteacher()cout*job;cout*room;cout*subject;void Student:setstudent()cout*major;
9、cout*banji;cout*leibie;/数据显示/void Person:displayperson()cout姓名:name性别:sex年龄:age;void Teacher:displayteacher()displayperson();cout职称:job教研室:room所授课程:subjectendl;void Student:displaystudent()displayperson();cout专业:major班级:banji类别:leibieendl;void Postdoctor:displaypostdoctor()displayperson();cout职称:job教研室:room所授课程:subject专业:major班级:banji类别:博士后endl;/void main()cout您正在输入一个老师的信息:endl;Teacher t1;cout*syy割endl;cout您正在输入一个学生的信息:endl;Student s1;cout*syy割endl;cout您正在输入一个博士后的信息:endl;Postdoctor p1;cout*syy割endl;coutendl;t1.displayteacher();coutendl;s1.displaystudent();coutendl;p1.displaypostdoctor();