Хороший пример на понимание того, что такое DoD (Diamond of Death) и того, как от него уйти.
Так как A и C — виртуально наследуются от V — для них будет создан один объект V.
В случае с B — нет виртуальности наследования, поэтому будет создан ещё один объект V.
То есть получается:
V is created!
A is created!
V is created!
B is created!
C is created!
D is created!
Так как A и C — виртуально наследуются от V — для них будет создан один объект V.
В случае с B — нет виртуальности наследования, поэтому будет создан ещё один объект V.
То есть получается:
V is created!
A is created!
V is created!
B is created!
C is created!
D is created!