关于父类没有缺省的构造函数时,子类如何建立构造函数

我们都知道,在类定义了带参数的构造函数后,便不再提供默认构造函数,但是子类的构造函数需要父类的缺省构造函数才能定义,否则编译时将会出错,这时有两种解决方法,一种是利用构造函数重载,重载一个缺省的构造函数,另一种方法如下;
例:
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) //此处为第二种方法的核心,在构造子类时,通过这种语法方式给父类的带参构造函数传递参数,使其初始化,从而初始化子类
{
//代码

};

另外,此种方式也可以用于对常量的初始化

例如在子类中定义一个私有成员变量:private:const int PI;,则可以在子类构造函数可以写成YangTree():Tree(20, 1), PI(3);

初学C++,第一次发帖,勿喷
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值