在继承的关系中,构造函数和析构函数的调用具有先后顺序。
#include<iostream.h>
class Animal{
public:
Animal(){
cout<<"animal construct"<<endl;
}
~Animal(){
cout<<"animal disconstruct"<<endl;
}
void eat(){
cout<<"animal eat"<<endl;
}
void sleep(){
cout<<"animal sleep"<<endl;
}
void breathe(){
cout<<"animal breath"<<endl;
}
};
class Fish: public Animal{
public:
Fish(){
cout<<"fish construct"<<endl;
}
~Fish(){
cout<<"fish disconstruct"<<endl;
}
};
void main(){
Fish fs;
}
可以看出,子类具有构造函数和析构函数然后再调用父类的构造函数和析构函数的时候, 顺序是父类构造函数、子类构造函数、子类析构函数、父类构造函数。