为什么有这个结果?

来源:百度知道 编辑:UC知道 时间:2024/06/15 03:50:23
#include<iostream.h>
class animal
{
public:
animal()
{
cout<<"animal contract"<<endl;
}
void eat()
{
cout<<"animal eat"<<endl;
}

void sleep()
{
cout<<"animal sleep"<<endl;
}
void breathe()
{
cout<<"animal breathe"<<endl;
}
};
class fish:public animal
{public:
fish()
{
cout<<"fish contract"<<endl;
}
}
main()
{
//animal an;
// an.eat();
fish fs;

//fs.sleep();
}
在main函数里只是定义了fs这个类,并没有调用animal()和fish()这2个函数
为什么会出现
animal contract
fish contract
的结果?

当你在main函数中定义一个类的时候他就会自动执行该类的构造函数!

fs继承了animal类,而animal()和fish()函数是animal类和fish类的构造函数,因此当定义fs类时会自动执行构造函数,而且执行的顺序是先执行继承类的构造函数再执行fish类的构造函数,有先后顺序!