Виртуальное наследование в C++, когда использовать?
Виртуальное наследование в C++, гарантирует нам, что только одна копия переменных-членов базового класса наследуется производными классами. Без виртуального наследования, если два класса B и C наследуются от класса A, и класс D наследуется от обоих классов B и C, то D будет содержать две копии переменных-членов A: одну через B и одну через C.
Вместо этого, если классы B и C виртуально наследуются от класса A, то объекты класса D будут содержать только один набор переменных-членов из класса A.
Эта техника полезна, когда вам приходится иметь дело с множественным наследованием, и нужно решить проблему ромбовидного наследования.
Рассмотрим следующую иерархию классов, представляющую проблему ромба, хоть и не с чистыми абстракциями.
коммент удалён
коммент удалён
· 17.09.2024
В целом сложная тема.
https://www.simplilearn.com/tutorials/cpp-tutorial/multiple-inheritance-in-cpp
Эффективное использование C++ Скотта Майерса
https://isocpp.org/wiki/faq/multiple-inheritance
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён