Как вы относитесь к паскалю?
, (есть гипотеза)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
| Страницы: (20) « Первая ... 8 9 [10] 11 12 ... 19 20 все ( Перейти к последнему сообщению ) |
Как вы относитесь к паскалю?
, (есть гипотеза)
|
Сообщ.
#136
,
|
|
|
|
Цитата Mr.Delphist @ Да-да, множественное наследование всегда было священой коровой сишников у нас в универе. Но когда начинаешь спрашивать, а где ты его реально применяешь, начинаются отмазки "ну... мнэээ... вот не надо пока..." Ну примеси и подобные вещи: http://en.wikipedia.org/wiki/Mixin - довольно удобны. |
|
Сообщ.
#137
,
|
|
|
|
А после этого они тоже говорят, мол, множественное наследование не нужно?
|
|
Сообщ.
#138
,
|
|
|
|
Цитата Qraizer @ Множественное наследование - не нужно. А после этого они тоже говорят, мол, множественное наследование не нужно? Добавлено На самом деле, примеси - это не попытка обойти запрет на множественное наследование. Это лучше, чем множественное наследование. И отсутствие примесей в C++ - существенный недостаток. |
|
Сообщ.
#139
,
|
|
|
|
Цитата applegame @ примеси - это не попытка обойти запрет на множественное наследование ... отсутствие примесей в C++ - существенный недостаток. Потрясающая логика В C++ не стали запрещать множественное наследование, потому миксины, как отдельная конструкция, там не нужны. То же касается и интерфейсов. Добавлено Цитата applegame @ лучше, чем множественное наследование Чем? |
|
Сообщ.
#140
,
|
|
|
|
Цитата applegame @ На самом деле, примеси - это не попытка обойти запрет на множественное наследование. Я сколько не пытался, не могу понять разницу между примесями и множественным наследованием. |
|
Сообщ.
#141
,
|
|
|
|
applegame, простое - тоже.
|
|
Сообщ.
#142
,
|
|
|
|
Цитата D_KEY @ Чем? Цитата korvin @ Миксины не встраиваются в иерархию классов. Никаких вам неопределенных ромбиков и лишних сущностей.Я сколько не пытался, не могу понять разницу между примесями и множественным наследованием. Например, посмотрим на бустовские интрузивные контейнеры. Чтобы класс мог быть элементом интрузивного контейнера его приходится наследовать от специальных классов, нужных только чтобы добавить несколько членов. Можно конечно и руками вписать нужные элементы, но это как-то совсем уже крайний случай. А если один класс должен быть в нескольких контейнерах? Да еще могут быть применены различные стратегии. В итоге иерархия засирается кучей коротких веток, которым там делать явно нечего. Миксины идеально подходят для этой задачи. Разница, скорее эстетическая, чем практическая, тем не менее. |
|
Сообщ.
#143
,
|
|
|
|
Цитата applegame @ Никаких вам неопределенных ромбиков и лишних сущностей. И что будет, если включить в класс два миксина с одинаковыми методами? |
|
Сообщ.
#144
,
|
|
|
|
Цитата korvin @ Зависит от языка. В D это решается указанием идентификатора при подмешивании. После чего можно уточнить вызываемый метод применяя соответствующий идентификатор. И что будет, если включить в класс два миксина с одинаковыми методами? |
|
Сообщ.
#145
,
|
|
|
|
applegame, если у нас есть механизм наследования, который способен решить все эти задачи, то зачем нам вводить лишние сущности в виде отдельного механизма интерфейсов и отдельного механизма миксинов, да еще и наследование при этом оставлять, только функциональность обрезать? И ты еще что-то заявляешь о лишних сущностях?
|
|
Сообщ.
#146
,
|
|
|
|
Цитата applegame @ Неопределённых ромбиков и лишних сущностей не существует. Вам наврали. Никаких вам неопределенных ромбиков и лишних сущностей. |
|
Сообщ.
#147
,
|
|
|
|
Цитата D_KEY @ Универсальное зачастую хуже специализированного. Особенно когда самая главная функциональность практически не востребована. applegame, если у нас есть механизм наследования, который способен решить все эти задачи, то зачем нам вводить лишние сущности в виде отдельного механизма интерфейсов и отдельного механизма миксинов, да еще и наследование при этом оставлять, только функциональность обрезать? Цитата D_KEY @ Лишние сущности - это гусеницы на самолете. Прикинь, самолет, который может летать, а может и бульдозером поработать. Лично я предпочитаю две отдельные специализированные машины: самолет и бульдозер.И ты еще что-то заявляешь о лишних сущностях? Цитата Qraizer @ Существует еще как. Правда C++ решил их своим излюбленным методом - костылями. Неопределённых ромбиков и лишних сущностей не существует. Вам наврали. |
|
Сообщ.
#148
,
|
|
|
|
Цитата applegame @ Универсальное зачастую хуже специализированного. Особенно когда самая главная функциональность практически не востребована. ... Лишние сущности - это гусеницы на самолете. Прикинь, самолет, который может летать, а может и бульдозером поработать. Лично я предпочитаю две отдельные специализированные машины: самолет и бульдозер. В таком случае, логично будет совсем отказаться от наследования реализации. По крайней мере это будет последовательно. Добавлено Цитата applegame @ Правда C++ решил их своим излюбленным методом - костылями. Аргументировано. |
|
Сообщ.
#149
,
|
|
|
|
Цитата D_KEY @ Также старые версии требовали локальные объявления с инициализацией размещать после объявлений.Старые версии Си требовали объявлений в начала блока, т.е. разница с паскалем все-равно была. Так правильно: ![]() ![]() int a; int b = 0; А так - ошибка: ![]() ![]() int a = 0; int b; Добавлено Цитата applegame @ Лишние сущности - это гусеницы на самолете. ![]() |
|
Сообщ.
#150
,
|
|
|
|
trainer, на самом деле и так и так правильно, и все соответствующие стандарту (описанию) языка компиляторы оба примера компилировали без проблем. Другое дело, что некоторые из них накладывали разные ограничения, например, при использовании goto или switch не в любом блоке можно было разместить объявление.
|