C++多重继承下构造函数的书写

在c++中,经常会用到一些类的构造函数,比如一个简单动物类的构造函数:

    //无参构造方法
	animals()
    {
        name = "未记录";
        type = "野生动物";
    }
    //有参构造方法
	animals(string type,string name)
	{
		this->type = type;
		this->name = name;
	}

众所周知,单继承的构造函数为在现有构造函数中加上“:父类”,:

    //有参构造
    meat(string food,string type,string name):animals(type,name)
	{
		this->food = food;
	}

但当遇到多继承时,往往因为上层已经继承了父类,而考虑到最下层类要引用父类忘记再引用祖父类,从而导致不能够进行祖父类构造方法的调用如:

sheep(string color,string plant,string type,string name):straw(plant,type,name)
	{
		this->color = color;
            s_count++;
	}

正确的创建构造函数应为:

  sheep(string color,string plant,string type,string name):straw(plant,type,name), animals(type,name)
	{
		this->color = color;
            s_count++;
	}

只有这样才能正确调用父类和祖父类的构造函数

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值