【C++】多态 - 虚继承

先说结论:虚继承是用来解决菱形问题的

菱形问题示意图如下:(来源于网络,用来解释,侵删)


前面提到过多继承的问题,如这个图所示D继承了C1 C2,C1 C2继承了B,那么创建一个D实例对象时,会有什么问题呢:

结论就是在创建D实例的同时不仅会创建C1 C2,还会创建2个B的实例!这个过程是很多余的。

为了不进行创建两个B这个多余的操作,就有了虚继承。将C1 C2对B虚继承:


猜你喜欢

转载自blog.csdn.net/onlyongwang/article/details/80636536