Re: В чём смыл ограничения в наследовании в C#?
От: vdimas Россия  
Дата: 17.06.05 21:20
Оценка: -1
Здравствуйте, adontz, Вы писали:

A>Не нашёл ответа, но жутко интересно


A>В чём смысл, что нельзя отнаследоваться от нескольких классов, но можно от одного класса и нескольких интерфейсов?

A>Соответсвенно ключевое слово base для вызова конструктора базового типа не оставляет и надежды, что не абстрактных базовых типов может быть два.

A>В Си++ такого ограничения нет и я нигде не встречал критики по этому поводу.


A>Объясните пожалуйста


Как мне кажется, основная проблема — техническая. (остальные объяснения про неявную сложность — отмазки )

А техническая проблема заключается в реализации сборщика мусора, для коего единица сбора — это Object.

Если объект множественно наследован, т.е. инкапсулировал в свое тело несколько Object, то как работать сборщику, если кто-то держит не "головной" объект, а некую его часть — одну из баз?

Да, все это решаемо, но ценой многократного оверхеда по производительности сборщика мусора. Уверен, то пока мест они на это не пойдут, ибо вопрос серьезный и почти политический. Возможно, что лет через несколько, когда скорость сборки мусора станет не критична, к этому вопросу вернутся.

Все-таки, множественное наследование как раз-таки дает бОльшую продуктивность при реализации сложных иерархий.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.