Множественное Наследование
HTML-код
- Опубликовано: 10 фев 2025
- Наследование - это что-то, что может упростить вашу работу. К несчастью, когда люди начинают создавать классы наследующие больше одного суперскласса, то у них могут возникнуть определённые проблемы.
Об этих проблемах, и пойдёт речь здесь.
Володя - ты космос!
Спасибо за отличный урок, хотелось бы поподробнее разобраться, как на "железном" уровне происходит создание объекта, выделение памяти для него, а в частности - почему компилятор не может разобраться при множественном наследовании и не борется с дублированием переменных. Просто сразу приходит в голову - ну так пусть в случае колизии используют одну общую переменную). Также интересно как же все-таки достучаться до нужного метода/переменной в таких случаях.
Валерий Шинкаренко Видео про это уже записано. Подождите немного.
Также проблема в ромбе возникает при переопределении методов базового класса одним и более дочерними. В Ruby проблема множественного наследования решается при помощи примесей(mixins)
В сишарпе все просто, там запрещено множественное наследование, вот и решение проблемы
В Java тоже нельзя множественное наследование, однако это не решение проблемы
Все супер ,но я все ждал реальный пример. Например как правильно обойти замыкание и тд.
Для ромбовидного наследования нужно использовать "виртуальное наследование", а насчет другого, то вроде по namespace можно и Д классу и к А классу.
Сделайте видео еще про vtable, тема тоже популярная.
Thomas Morgan Ещё не сделано, но уже записал видео про позднее связывание (динамическую типизацию). Про виртуальные таблицы тоже запишу.
C разрешает мн. наследование? разве это не функциональный язык, без ООП?
Вы что-то путаете. Функциональные языки - это lisp, Haskell, Erlang. Они используют лямбда-исчисление как математическую основу своей работы. Да и сказать, что в C нет ООП - это слукавить. В C есть структуры, которые позволяют реализовать и наследование, и полиморфизм, и бог знает что ещё. Просто это не так удобно, как с классами в плюсах.
Каким образом можно реализовать множественное наследование в Си, если там нет классов?
а если там нет классов, если ли там ООП?
никаким, или писать на плюсах
В плюсах класс iostream использует ромбовидное наследование.
у меня все классы получаются Г
класс Г
Володя из ПТУ что ли?
Учите Python в нем нет таких проблем!