定义一个哺乳动物类Mammal,并从中派生出一个狗类Dog,下面给出Mammal类的定义,要求:
1) 添加Dog类的颜色数据成员,访问属性为私有,通过SetColor和GetColor成员函数来对颜色进行设置和获取;添加性别数据成员,访问属性为保护,通过SetSex和GetSex成员函数来对性别进行设置和获取;添加品种数据成员,访问属性为公有,课选择是否定义SetKind和GetKind成员函数来对品种进行设置和获取。
2) 分别为基类和派生类添加相应的构造函数(有参、无参)和析构函数。
3) 分别采用公有派生,私有派生和保护派生三种方式进行继承,尝试各种方式对成员数据进行输入和输出。
class Mammal
{
private:
string itsName;
protected:
int itsAge;
public:
int itsWeight;
int GetName(){return itsName;}
void SetName (string name) { itsName=name;}
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类的数据成员和成员函数
};
class Dog : protected Mammal
{
//定义Dog类的数据成员和成员函数
};
class Dog : private Mammal
{
//定义Dog类的数据成员和成员函数
};
class Mammal
{
private:
string itsName;
protected:
int itsAge;
public:
int itsWeight;
int GetName(){return itsName;}
void SetName (string name) { itsName=name;}
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类的数据成员和成员函数
Dog(){}
Dog(string name,int age,int weight){
SetName(name);
SetAge(age);
SetWeight(weight);
//公有继承,可以拥有父类的所有publuc函数,所以此时不需要再重新定义
}
};
class Dog : protected Mammal
{
//定义Dog类的数据成员和成员函数
Dog(){}
Dog(string name,int age,int weight){
SetName(name);
SetAge(age);
SetWeight(weight);
//保护继承,可以拥有父类的所有publuc函数,但是成员函数都变为保护,在类外部不能被调用,需要重新定义
}
int GetName2(){return GetName();}
void SetName2 (string name) { SetName(name);}
int GetAge2(){return GetAge();}
void SetAge2(int age) {SetAge(age);}
int GetWeight2() { return GetWeight();}
void SetWeight2(int weight) {SetWeight(weight);}
};
class Dog : private Mammal
{
//定义Dog类的数据成员和成员函数
Dog(){}
Dog(string name,int age,int weight){
SetName(name);
SetAge(age);
SetWeight(weight);
//私有继承,拥有父类的所有publuc函数,这些函数都变成私有,不能被类外部的对象调用,需要重新定义
}
int GetName2(){return GetName();}
void SetName2 (string name) { SetName(name);}
int GetAge2(){return GetAge();}
void SetAge2(int age) {SetAge(age);}
int GetWeight2() { return GetWeight();}
void SetWeight2(int weight) {SetWeight(weight);}
};