Язык программирования C/С++
16.09
Виртуальное наследование в C++, когда использовать?
Виртуальное наследование в C++, гарантирует нам, что только одна копия переменных-членов базового класса наследуется производными классами. Без виртуального наследования, если два класса B и C наследуются от класса A, и класс D наследуется от обоих классов B и C, то D будет содержать две копии переменных-членов A: одну через B и одну через C.
Вместо этого, если классы B и C виртуально наследуются от класса A, то объекты класса D будут содержать только один набор переменных-членов из класса A.
Эта техника полезна, когда вам приходится иметь дело с множественным наследованием, и нужно решить проблему ромбовидного наследования.
Рассмотрим следующую иерархию классов, представляющую проблему ромба, хоть и не с чистыми абстракциями.
#IT #itвроссии #itsphere #код #кодинг #обучение #айтиДмитрий Штангей
· 16.09
мне вот интересно, используют ли в здравом уме наследование от более чем одного не виртуального предка в реальной жизни? и зачем? плюсы не родной язык, родной [c]. около 5 лет пишу на плюсах и упорно смотрю на множественное наследование как на протокол. что я упускаю и что стоит почитать?
ответить
Язык программирования C/С++
17.09
В целом сложная тема.
https://www.simplilearn.com/tutorials/cpp-tutorial/multiple-inheritance-in-cpp
Эффективное использование C++ Скотта Майерса
https://isocpp.org/wiki/faq/multiple-inheritance
ответить
еще контент в этом сообществе
еще контент в этом соообществе
Язык программирования C/С++
16.09
войдите, чтобы увидеть
и подписаться на интересных профи