关于父类没有缺省的构造函数时,子类如何建立构造函数
我们都知道,在类定义了带参数的构造函数后,便不再提供默认构造函数,但是子类的构造函数需要父类的缺省构造函数才能定义,否则编译时将会出错,这时有两种解决方法,一种是利用构造函数重载,重载一个缺省的构造函数,另一种方法如下;例:
class Tree //构造一个树类作为父类
{
private:
int height;
int circu;
public:
Tree(int height,int circu) //传递树的高度和周长
{
this -> height = height; //使用this指针来传递数据到私有变量
this -> circu = circu;
}
void TreeLife() //树类的一个方法
{
//代码
}
};
class YangTree :public Tree //定义一个杨树类,作为子类,使用public继承
{
public:
YangTree(): Tree(20, 1) //此处为第二种方法的核心,在构造子类时,通过这种语法方式给父类的带参构造函数传递参数,使其初始化,从而初始化子类
{
//代码
}
};
初学C++,第一次发帖,勿喷