Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Появилась идея? Обсуди ее на форуме трейдеров!
Alexander
1510
Alexander 2010.01.26 22:07 

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

Планируется ли внедрять конструкторы с параметрами?

Sergey Kravchuk
3330
Sergey Kravchuk 2010.01.27 16:12  
поддерживаю двумями руками - оччччень хочется чтобы такая возможность была.

Ilyas
1185
Ilyas 2010.01.27 16:27  

ИМХО, конструктор с параметрами - зло. Нельзя нормально вернуть результат инициализации объекта, + некоторым придётся объяснять, почему нельзя объявить массив объектов имеющих параметризированные констукторы. Подозреваю, что после таких конструкторов попросят исключения - возможность его борсать и отлавливать...

Sergey Kravchuk
3330
Sergey Kravchuk 2010.01.27 19:30  
а у меня из практики другое ИМХО: например у меня есть класс с динамически распределяемыми массивами других классов. При создании переменной я хочу иметь возможность сразу при описании переменной указать сколько мне элементов нужно создать. что то вроде MyClass mc(25); а сейчас приходится писать абстрактный конструктор (или вообще обходится без него) и в класс включать метод Create(int Count); не смертельно, но не наглядно

Alexander
1510
Alexander 2010.01.28 00:07  
ForexTools:
сейчас приходится писать абстрактный конструктор (или вообще обходится без него) и в класс включать метод Create(int Count); не смертельно, но не наглядно

аналогичная ситуация
John
3254
John 2010.01.28 00:12  
GarF1eld писал(а)  :

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

Планируется ли внедрять конструкторы с параметрами?

ИМХО - не надо их. Зачем переусложнять. Если надо вполне можно обойтись вторичным "конструктором" в виде функции. Гораздо ЯСНЕЕ для понимания а результат тот же.
Sergey Kravchuk
3330
Sergey Kravchuk 2010.01.28 08:58  
SProgrammer:
ИМХО - не надо их. Зачем переусложнять. Если надо вполне можно обойтись вторичным "конструктором" в виде функции. Гораздо ЯСНЕЕ для понимания а результат тот же.

:))) одно ИМХО против другого ИМХО.... универсальное решение: сделать возможность пользоваться обеими вариантами и каждый выберет себе под свое ИМХО ;)

а вообщето я не понимаю в чем принципиальная разница в конструкторе с параметрами и без?! в конце концов это самая обычная функция, которая немного не обычно вызывается. и по какой такой веской причине в конструктор нельзя передавать параметры?

Ilyas
1185
Ilyas 2010.01.28 11:33  
ForexTools:
а у меня из практики другое ИМХО: например у меня есть класс с динамически распределяемыми массивами других классов. При создании переменной я хочу иметь возможность сразу при описании переменной указать сколько мне элементов нужно создать. что то вроде MyClass mc(25); а сейчас приходится писать абстрактный конструктор (или вообще обходится без него) и в класс включать метод Create(int Count); не смертельно, но не наглядно


а как вы проверяете, что вы смогли выделить память, или как вы создадите массив из MyClass?

Мы уже задумывлись о введении параметризованных конструкторов, пока решение по этому вопросу отложено.
John
3254
John 2010.01.28 13:03  
ForexTools:

:))) одно ИМХО против другого ИМХО.... универсальное решение: сделать возможность пользоваться обеими вариантами и каждый выберет себе под свое ИМХО ;)

а вообщето я не понимаю в чем принципиальная разница в конструкторе с параметрами и без?! в конце концов это самая обычная функция, которая немного не обычно вызывается. и по какой такой веской причине в конструктор нельзя передавать параметры?

 

Да все просто - :) Смотри - создаем массив из экземпляров класса у которого конструктор с параметрами. То есть создаем обьекты пачкой, что при этом происходит при конструкторе без параметров? - просто память выделяется и заполняется чем-то (!) ну например тем что получилось после создания ОДНОГО обьекта , просто филл. :) Если констр  параметрами что происходит ? Дык - почти тоже самое, вот только никто НЕ МОЖЕТ ГАРАНТИРОВАТЬ в силу того что параметры не обязанны быть константными что так просто зафилить память можно. Ну и что же делать? Да тут есть два варианта - 1)сказать что зафиливание не будет, и 2) вызвать для каждого элемента массива констрктор. То есть по сути АВТОМАТИЧЕСКИ сделать ЧТО-ТО, то что типа ВСЕ ПРОГРАМИСТЫ знают. :) Ну а если конструктор без параметров, то тут и спрашивать нечего - просто филим, а хочешь потом что-то там с каждым элементом массива делать.  Дык делай, но ЯВНО. :) То есть ... ну хочу дальше обьяснять - чай сам догодайешся. :) Ну вообщем суть таже, но умолчаний нету. А тут принцип - "а что пару строчек кода написать лень?" :)

Sergey Kravchuk
3330
Sergey Kravchuk 2010.01.28 15:18  

Да, действительно: "все просто" :) выкрутится можно практически из любой ситуации и даже вместо MathSqrt написать свою функцию... только зачем?!!

Если передача параметров в конструктор не сделана потому что есть какието принципиальные ограничения в реализации компилятора MQL5 - это один разговор (в один байт число 1024 не записать никак). Но если это не сделано потому что кто то гдето когдато подумал что это неправильно с точки зрения стиля програмирования или принципов ООП - то это совсем другая история. Один подумал так... другой - этак....

Sergey Kravchuk
3330
Sergey Kravchuk 2010.01.28 15:26  
mql5:

Мы уже задумывлись о введении параметризованных конструкторов, пока решение по этому вопросу отложено.

а можно вопрос "по ходу"? как вы планируете дальше развивать пятерку?

1) собираетесь ли вы сделать некий "релиз" и в дальнейшем заморозить его (тут же приступив к работе над MQL6), только исправляя ошибки и добавляя новую функциональность только если она "критична" ?

или

2) собираетесь ли вы сделать некий "релиз" и в дальнейшем развивать, развивать и развивать его ....?

во втором варианте все отложенные на потом решения когда нибудь будут реализованы и можно спокойно ждать когда до них дойдет очередь :)
если же вы уже намечаете перспективы по шестерке и думаете как бы поскорее зафиксировать пятерку - то это совсем другая ситуация...

/ /1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий