继承与派生

定义一个哺乳动物Mammal类,数据成员为itsAge,再由此派生出狗Dog类,数据成员为itsWeight,分别定义Mammal类和Dog类的构造和析构函数。另外Mammal类中需定义成员函数GetAge()SetAge()Speak(),其中Speak()函数能够显示“Mammal sound!”。Dog类中需定义成员函数GetWeight()SetWeight()WagTail(),其中WagTail()函数,显示"Tail wagging "。然后通过Debug调试观察基类与派生类的构造函数与析构函数的调用顺序。

 

#include<iostream>
using namespace std;
class Mammal{
public:
Mammal(int itsAge){
age=itsAge;
cout<<"Mammal constructor..."<<endl;
}
~Mammal(){
cout<<"Mammal destructor..."<<endl;
}
int SetAge(int itsAge){
age=itsAge;
}
int GetAge(){
return age;
}
int Speak(){
cout<<"Mammal sound!"<<endl;
}
private:
int age;
};
class Dog:public Mammal{
public:
Dog(int itsAge,int itsWeight):Mammal(itsAge),weight(itsWeight){
cout<<"Dog constructor..."<<endl;
}
~Dog(){
cout<<"Dog destructor..."<<endl;
}
int SetWeight(int itsWeight){
weight=itsWeight;
}
int GetWeight(){
return weight;
}
int WagTail(){
cout<<"Tail wagging..."<<endl;
}
private:
int weight;
};
int main(){
Dog jack_Dog(1,5);
cout<<"jack is "<<jack_Dog.GetAge()<<" years old"<<endl;
cout<<"jack's weight is "<<jack_Dog.GetWeight()<<endl;
return 0;
}

 

你可能感兴趣的:(C++,c,继承与派生)