Множественное наследование
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.07.11 00:36
Оценка:
На днях Lazy Cjow Rhrr подкинул интересную ссылку на работу CZ:MultipleInheritance Without Diamonds (pdf).

Возможно на базе него получится сделать множественное наследование лишенное тех проблем которые присущи С++ (брильянтовое наследование и проблема инициализации объектов).

Читать всем у кого есть желание и соответствующий размер мозга .

Если не будет серьезной критики, то возможно эта идея может быть использована в Н2.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Множественное наследование
От: lazy_walrus  
Дата: 27.07.11 01:53
Оценка: +1 :))) :)
Здравствуйте, VladD2, Вы писали:

VD>На днях Lazy Cjow Rhrr подкинул интересную ссылку на работу CZ:MultipleInheritance Without Diamonds.


VD>Читать всем у кого есть желание и соответствующий размер мозга .


Интересно какой нужен размер мозга чтобы открыть такую ссылку?
Re[2]: Множественное наследование
От: Ziaw Россия  
Дата: 27.07.11 02:11
Оценка:
Здравствуйте, lazy_walrus, Вы писали:

_>Интересно какой нужен размер мозга чтобы открыть такую ссылку?


http://www.cs.cmu.edu/~donna/public/malayeri.TR08-169.pdf
Re[2]: Множественное наследование
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.07.11 08:58
Оценка:
Здравствуйте, lazy_walrus, Вы писали:

VD>>На днях Lazy Cjow Rhrr подкинул интересную ссылку на работу CZ:MultipleInheritance Without Diamonds.

VD>>Читать всем у кого есть желание и соответствующий размер мозга .

_>Интересно какой нужен размер мозга чтобы открыть такую ссылку?


Исправил. Сори. Поздно было .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Множественное наследование
От: hardcase Пират http://nemerle.org
Дата: 27.07.11 09:04
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Если не будет серьезной критики, то возможно эта идея может быть использована в Н2.


По сути в документе высказана тривиальная идея: если при объявлении подтипа мы хотим вызывать конструктор базового типа — используется extends, если нам не нужно его вызывать — используется requires.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Множественное наследование
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.07.11 09:08
Оценка:
Здравствуйте, hardcase, Вы писали:

H>По сути в документе высказана тривиальная идея: если при объявлении подтипа мы хотим вызывать конструктор базового типа — используется extends, если нам не нужно его вызывать — используется requires.


Все не совсем так просто. Там (как и в Котлине) для реализации нужно бдет неявно вводить интерфейсы, и если используется requires, то по сути нужно реализовывать и нтерфейс, а если requires, то наследование или полное копирование реализации (для второго и далее базового класса).

Лично у меня пока что не все в голове уложилось.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Множественное наследование
От: hardcase Пират http://nemerle.org
Дата: 27.07.11 09:37
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Лично у меня пока что не все в голове уложилось.


+1. Самое веселье начнется когда придется организовывать доступ к protected членам.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Множественное наследование
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.07.11 09:42
Оценка:
Здравствуйте, hardcase, Вы писали:

VD>>Лично у меня пока что не все в голове уложилось.


H>+1. Самое веселье начнется когда придется организовывать доступ к protected членам.


А что там веселого то?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Множественное наследование
От: artelk  
Дата: 27.07.11 10:55
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>На днях Lazy Cjow Rhrr подкинул интересную ссылку на работу CZ:MultipleInheritance Without Diamonds (pdf).


VD>Возможно на базе него получится сделать множественное наследование лишенное тех проблем которые присущи С++ (брильянтовое наследование и проблема инициализации объектов).


VD>Читать всем у кого есть желание и соответствующий размер мозга .


VD>Если не будет серьезной критики, то возможно эта идея может быть использована в Н2.


Думаю, полезным было бы разрешить делать реализацию (дефолтную) методов в интерфейсах (как в классах типов Хаскеля). Если класс реализует такой интерфейс, но не реализует дефолтный метод — просто копировать его (дефолтный метод).
А вместе с макро-атрибутом [DesignPatterns.Proxy] будут покрываться многие сценарии, для которых обычно используется множественное наследование.
Re: Множественное наследование
От: Denom Украина  
Дата: 27.07.11 13:32
Оценка:
Здравствуйте, VladD2, Вы писали:

А может лучше Traits?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[2]: Множественное наследование
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.07.11 13:43
Оценка:
Здравствуйте, Denom, Вы писали:

D>А может лучше Traits?


В статье вроде как все описано. Стоит сначала ее почитать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.