Виртуальное наследование в C++, когда использовать?

Виртуальное наследование в C++, гарантирует нам, что только одна копия переменных-членов базового класса наследуется производными классами. Без виртуального наследования, если два класса B и C наследуются от класса A, и класс D наследуется от обоих классов B и C, то D будет содержать две копии переменных-членов A: одну через B и одну через C.

Вместо этого, если классы B и C виртуально наследуются от класса A, то объекты класса D будут содержать только один набор переменных-членов из класса A.

Эта техника полезна, когда вам приходится иметь дело с множественным наследованием, и нужно решить проблему ромбовидного наследования.

Рассмотрим следующую иерархию классов, представляющую проблему ромба, хоть и не с чистыми абстракциями.

#IT #itвроссии #itsphere #код #кодинг #обучение #айти

Виртуальное наследование в C, когда использовать? | Сетка — социальная сеть от hh.ru