[面试]——菱形继承和虚继承

这个博客用来记录,我面试时当时没有想出来的题。

你知道菱形继承吗?讲一下

菱形继承,顾名思义是一种继承方式,假设有两个派生类分别继承了基类,则它们都会有基类的公有成员,当第三个派生类继承了前两个派生类后,就有了菱形继承,第三个派生类会有两套基类的成员,画图表示如下。
[面试]——菱形继承和虚继承
虚继承可以解决这个问题。

讲一下虚继承

虚继承是一种机制,让继承该虚基类的派生类共享其成员,无论派生多少次,都只实现一次虚基类,写法是在继承前加上一个virtual。