c++实验8继承与派生上机练习题
- 格式:docx
- 大小:23.91 KB
- 文档页数:6
1. 定义一个哺乳动物类Mamma,l 并从中派生出一个狗类Dog,要求:
( 1) 添加Dog 类的颜色数据成员,访问属性为私有,通过函数来对颜色进行设置和获取。
( 2) 分别为基类和派生类添加相应的构造函数(有参、无参) 测试。
class Mammal
{ protected:
int itsAge;
int itsWeight;
public:
int GetAge(){return itsAge;}
void SetAge(int age) {itsAge=age;}
int GetWeight() { return itsWeight;}
void SetWeight(int weight) {itsWeight= weight;}
};
class Dog : public Mammal
{
// 定义Dog 类的数据成员和成员函数
};
改:
#include
#include
using namespace std;
class Mammal
{
protected:
int itsAge;
int itsWeight;
public:
Mammal();
~Mammal();
int GetAge(){return itsAge;}
void SetAge(int age) {itsAge=age;}
int GetWeight() { return itsWeight;}
void SetWeight(int weight) {itsWeight= weight;}
};
class Dog : public Mammal
{下面给出Mamma类的定义,SetColor 和GetColor 成员和析构函数,并进行
protected: char itscolor[20];
public:
Dog();
void Setcolor(char *color) {strcpy(itscolor,color);}
void getcolor(){cout<<" 狗的颜色"< //////////////////////// Mammal::Mammal() { int age1,weight1; cout<<" 请输入动物的年龄:"< cin>>age1; SetAge(age1); cout<<" 请输入动物的体重:"< cin>>weight1; SetWeight(weight1); } Mammal::~Mammal() { cout<<"Destructor called."< } Dog::Dog() {char color[20]; cout<<" 请输入狗的颜色:"< cout<<" 狗的颜色"< 年龄"< } void main() { Dog dog1; } (4)设计人员基类Person。其成员包括: 数据成员:姓名(字符数组)、性别(字符数组)和年龄(整型)成员函数: SetPerson,设置人员数据函数; DisplayPerso n,显示人员数据函数; 设计派生类1: Teacher,派生于Person。新增成员包括:数据成员:职称(字符数组)、教研室(字符数组)和所授课程(字符数组)成员函数:SetTeache,设置数据成员函数; DisplayTeacher,显示数据成员函数; 设计派生类2: Student,派生于Person。新增成员包括: 数据成员:专业(字符数组)、班级(字符数组)和类别(int)其中类别取值:1(本科生)、2(硕士生)、3(博士生)成员函数:SetStude n,设置数据成员函数; DisplayStude nt,显示数据成员函数; 设计派生类3: PostDoctor (博士后),多重继承于Student与Teacher。新增成员包括: 数据成员:无 成员函数:SetPostDoctor,设置数据成员函数;DisplayPostDoctor ,显示数据成员函数; 主函数:输入并输出一个教师、一个本科生、一个博士后数据。 #include #include using namespace std; #define n 20 //////////// 类的定义 class Person { protected: char name[n]; char sex[n]; int age; public: Person(); void setperson(); void displayperson(); }; class Teacher :virtual public Person { protected: char job[n]; char room[n]; char subject[n]; public : Teacher(); void setteacher(); void displayteacher(); };