C++学习-虚继承

本文探讨了在C++中菱形继承结构下,如何正确地在基类Person的构造函数中初始化,强调了不能通过派生类的中层调用基类的构造函数,并以HighStudent和Person为例,解释了基类1的初始化路径限制。
摘要由CSDN通过智能技术生成

在这里插入图片描述

在这里插入图片描述
要注意的是,在菱形继承中,基类的初始化只有两种方式

  1. 在 HighStudent 的构造函数中调用 Person 的构造函数,即 … : Person(name), Student(name,age) …

  2. 在 Person.h 中给 Person 的构造函数增加默认值,比如「Person(const string &name = “shiyanlou”);」

不可以通过派生类的中层初始化基类的构造函数

在这里插入图片描述
多重继承和菱形继承结合

这里的基类1的构造函数初始化需要通过4进行,所以基类1的初始化路径为7->4->1,而不能直接7->1.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值