Хорошо, так в примере наследования алмазов classi c у вас есть базовый класс, два класса, которые наследуются от этого базового класса, а затем еще один класс, который наследуется от этих двух, что делает хороший симметричный ромб. В этом случае два класса наследуются практически от базового класса, чтобы избежать наличия двух копий базового класса в самом производном классе.
Но что, если существует несколько уровней наследования между базовым классом и наиболее производный класс, как видно из примера диаграммы ниже. Все ли классы (B, C, D) должны наследоваться виртуально от их прямых базовых классов или только те, которые наследуются напрямую (B, C) от базового класса? Предполагая, что нет других классов, кроме тех, что на диаграмме.