Возможно на базе него получится сделать множественное наследование лишенное тех проблем которые присущи С++ (брильянтовое наследование и проблема инициализации объектов).
Читать всем у кого есть желание и соответствующий размер мозга .
Если не будет серьезной критики, то возможно эта идея может быть использована в Н2.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, lazy_walrus, Вы писали:
VD>>На днях Lazy Cjow Rhrr подкинул интересную ссылку на работу CZ:MultipleInheritance Without Diamonds. VD>>Читать всем у кого есть желание и соответствующий размер мозга .
_>Интересно какой нужен размер мозга чтобы открыть такую ссылку?
Исправил. Сори. Поздно было .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Если не будет серьезной критики, то возможно эта идея может быть использована в Н2.
По сути в документе высказана тривиальная идея: если при объявлении подтипа мы хотим вызывать конструктор базового типа — используется extends, если нам не нужно его вызывать — используется requires.
Здравствуйте, hardcase, Вы писали:
H>По сути в документе высказана тривиальная идея: если при объявлении подтипа мы хотим вызывать конструктор базового типа — используется extends, если нам не нужно его вызывать — используется requires.
Все не совсем так просто. Там (как и в Котлине) для реализации нужно бдет неявно вводить интерфейсы, и если используется requires, то по сути нужно реализовывать и нтерфейс, а если requires, то наследование или полное копирование реализации (для второго и далее базового класса).
Лично у меня пока что не все в голове уложилось.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, hardcase, Вы писали:
VD>>Лично у меня пока что не все в голове уложилось.
H>+1. Самое веселье начнется когда придется организовывать доступ к protected членам.
А что там веселого то?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>На днях Lazy Cjow Rhrr подкинул интересную ссылку на работу CZ:MultipleInheritance Without Diamonds (pdf).
VD>Возможно на базе него получится сделать множественное наследование лишенное тех проблем которые присущи С++ (брильянтовое наследование и проблема инициализации объектов).
VD>Читать всем у кого есть желание и соответствующий размер мозга .
VD>Если не будет серьезной критики, то возможно эта идея может быть использована в Н2.
Думаю, полезным было бы разрешить делать реализацию (дефолтную) методов в интерфейсах (как в классах типов Хаскеля). Если класс реализует такой интерфейс, но не реализует дефолтный метод — просто копировать его (дефолтный метод).
А вместе с макро-атрибутом [DesignPatterns.Proxy] будут покрываться многие сценарии, для которых обычно используется множественное наследование.