Вопросы от "чайника" - страница 129

 
MetaDriver:

Очень бы пригодилось.  И ещё указатели на структуры.  Причём не обязательно их (структуры) делать динамическими.  Главное чтоб сортировать можно было индексный массив вместо самих структур. 

// Структуры во многих случаев нежелательно заменять классами. Они экономные (нет таблицы виртуальных методов) и содержат "сплошные" данные.

В целом, для этого и собираемся ввести наследование, Вы всегда для оборачивающего класса можете получить хендл.
 
Urain:

Те мы начали с множества, от которого наследуется клетка, те сошлись в один класс, потом снова разошлись на органы и снова сошлись в класс человек, и снова разошлись по профессиям.

Не знаю как Вы, но нормальные люди на органы не расходятся. Множественное наследование вещь крайне спорная, и не даром в самом продвинутом языке C# было решено отказаться от этого механизма в пользу интерфейсов. Думаете разработчики C# не знали что делали? 
 
C-4:
Не знаю как Вы, но нормальные люди на органы не расходятся. Множественное наследование вещь крайне спорная, и не даром в самом продвинутом языке C# было решено отказаться от этого механизма в пользу интерфейсов. Думаете разработчики C# не знали что делали? 

А как же донорство органов ? :)

Вопрос спорный и до конца не закрытый, факт в том что в С++ множественное наследование есть, MQL позиционируется как С++ подобный язык, почему нет.

 
C-4:
Не знаю как Вы, но нормальные люди на органы не расходятся. Множественное наследование вещь крайне спорная, и не даром в самом продвинутом языке C# было решено отказаться от этого механизма в пользу интерфейсов. Думаете разработчики C# не знали что делали? 

Бугага :)

Во-первых с какого перепугу C# вдруг оказался самым продвинутым языком?

Во-вторых в С# было решено отказаться от множественного наследования классов в пользу множественного наследования интерфейсов. ))) Оно реализуется проще.

Идите учите предмет.

TheXpert:

С ходу нет, но использовал и не раз. Причем практически без вариантов.

Беру слова обратно. виртуальное наследование использовал только чтобы убрать проблему неоднозначности выбора суперкласса.
 
mql5:
В целом, для этого и собираемся ввести наследование, Вы всегда для оборачивающего класса можете получить хендл...

...и таблицу виртуальных методов в нагрузку.  Чего как раз и хотелось избежать.  :)  Иначе и вопрос бы не встал.

Ладно, не смертельно.  Буду делать через дополнительный индексный массив.
Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
TheXpert:

Бугага :)

1.  Во-первых с какого перепугу C# вдруг оказался самым продвинутым языком?

2.  Во-вторых в С# было решено отказаться от множественного наследования классов в пользу множественного наследования интерфейсов. ))) Оно реализуется проще.

1.  А какие конкретно возражения? :)

2.  Давай просить интерфейсы.  С множественным наследованием.  Тады поддержу. :)

 
TheXpert:

Бугага :)

Во-первых с какого перепугу C# вдруг оказался самым продвинутым языком?

Во-вторых в С# было решено отказаться от множественного наследования классов в пользу множественного наследования интерфейсов. ))) Оно реализуется проще.

Идите учите предмет.

Беру слова обратно. виртуальное наследование использовал только чтобы убрать проблему неоднозначности выбора суперкласса.

Я не буду приводить аргументы в пользу агрегирования, думаю, вы и сами их знаете. Точно так же и я знаю об аргументах в пользу множественного наследования. И под ними масса обоснований, как с одной, так и с другой стороны. Наверное, здесь вопрос о том, кому что ближе. В случае нашей конкретной фирмы агрегирование оказалось значительно предпочтительнее, так как проще для разработки и поддержки именно нашей командой.

Urain:

Те мы начали с множества, от которого наследуется клетка, те сошлись в один класс, потом снова разошлись на органы и снова сошлись в класс человек, и снова разошлись по профессиям.

Профессия у вас, получается, наследник от клетки, что в какой-то (неожиданной) мере верно :). Для определения того, что в данном конкретном случае лучше использовать, нужно определить, какое отношение между двумя объектами:

  1. Объект А является объектом Б - наследование
  2. Объект А состоит из (имеет, содержит) объект Б - композиция 

 
MetaDriver:

1.  А какие конкретно возражения? :)

2.  Давай просить интерфейсы.  С множественным наследованием.  Тады поддержу. :)

2. Поддерживаю
 
MetaDriver:

1.  А какие конкретно возражения? :)

Каждый язык имеет свою область применения. Говорить о языке, что он "самый продвинутый" в целом это абсурд.

2.  Давай просить интерфейсы.  С множественным наследованием.  Тады поддержу. :)

А давай! Какая разница как это называется? Суть почти не меняется.
 

C# однозначно самый продвинутый язык. Все остальное либо уже слишком устарело либо слишком специализированно.

Множественное наследование интерфейсов это ни одно и тоже что и множественное наследование классов. Во втором случае есть иерархия сверху-вниз, и из-за этого ветви потомков могут значительно переплетаться  друг с другом, внося существенную путаницу и сумятицу в архитектуру проекта. А с наследованием интерфейсов проще: есть унифицированные методы, например поиска или сортировки, хочешь к ним подрубить свой класс - пиши соответсвующий интерфейс взаимодействия. И ни какой это не "костыль". Это С++ один большой костыль написанный для языка Си. 

Причина обращения: