子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。
构造原则如下:
1. 如果子类没有定义构造方法,则调用父类的无参数的构造方法。
2. 如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。
#include <iostream.h>
class animal
{
public:
animal(int height, int weight)
{
cout<<"animal construct"<<endl;
}
…
};
class fish:public animal
{
public:
fish():animal(400,300)
{
cout<<"fish construct"<<endl;
}
…
};
void main()
{
fish fh;
}
在fish类的构造函数后,加一个冒号(:),然后加上父类的带参数的构造函数。
这样,在子类的构造函数被调用时,系统就会去调用父类的带参数的构造函数去构造对象。
3w6描述
下面程序输出的结果是:
4,6