Множественное наследование: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
→‎Обзор: уточнение
Строка 34:
{{нет ссылок|дата=2012-08-08}}
Множественное наследование критикуется за следующие проблемы, возникающие в некоторых языках, в частности, C++:
* семантическая неопределенностьнеопределённость часто совокупно представляется как ''[[Проблема ромба]]''.<ref>[http://web.cecs.pdx.edu/~black/publications/TR_CSE_02-012.pdf Traits: Composable Units of Behavior]</ref>
* отсутствует возможность непосредственного многократного наследования от одного класса.{{нет АИ|2|12|2009}}
* порядок наследования изменяет семантику класса.{{нет АИ|2|12|2009}} Конструктор дочернего класса вызывает конструкторы непосредственных родителей, а те, в свою очередь - конструктор прародителя. Однако прародительский объект имеется в единственном экземпляре и конструировать его дважды нельзя, поэтому сработает вызов конструктора прародителя только конструктором ''первого'' родительского класса в списке наследования.