Andrey Dik #: Понятно. Жаль, потому что при "=" придется сначала объявлять объекты а потом присваивать массиву, это увеличит код как минимум в два раза (хотя, благо, это нужно сделать всего один раз, а далее просто обращаться к массиву через цикл).
Не заморачиваюсь и пишу лаконично. Потенциальная проблема здесь.
class A { public: int i; };
voidOnStart()
{
const A a; // Создан const-объект - запрет на изменение полей, разрешается вызывать только const-методы.Print(a.i);
((A*)&a).i = 5; // В const-объекте все равно изменили поле.Print(a.i); // 5
((A)a).i = 7; // В const-объекте все равно изменили поле.Print(a.i); // 7
}
Неизменяемый объект при желании может меняться, но это нужно явно захотеть, создав определенную конструкцию. Т.е. программист специально что-то делает, понимая, к чему это приведет.
В случае же с массивами конструкцию создавать не нужно, поэтому программист может не понимать, что случайно поменял объект, и теперь объект стал вести себя не так, как планировалось.
Andrey Dik #: Понятно. Жаль, потому что при "=" придется сначала объявлять объекты а потом присваивать массиву, это увеличит код как минимум в два раза (хотя, благо, это нужно сделать всего один раз, а далее просто обращаться к массиву через цикл).
В данном случае уместна будет запись в строку и нумерация с 0:
C_Ind *inds[2];
C_Ind *ave0 = new C_AVE0(); inds[0] = ave0;
C_Ind *ave1 = new C_AVE1(); inds[1] = ave1;
Согласен - еще один аргумент против {} и мнимой лаконичности
Тем более, что создание одного объекта может зависеть от предыдущего и ошибка в 1ом должна препятствовать созданию остальных return после обработки ошибки
ага, здорово!
ретурн в инициализации советника. удобно работать таким образом, учитывая что таких сущностей-индикаторов несколько десятков.
Зачем формируется шапка/рамка тут при использовании Стилизатора?
enum ENUM_vibros_type_NAME //Определяет метод преобразования выбросов
{
type_Granica=0,//Значение выбросов преобразовываются в близкое к сплиту значение
type_Random=1,//Значение выбросов преобразовываются в случайное значение в диапазоне вне выбросов
};
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+input ENUM_vibros_type_NAME Vibros_type=ENUM_vibros_type_NAME(0);//Метод выбора весов объектов
Зачем формируется шапка/рамка тут при использовании Стилизатора?
Мне она кажется явно лишней.
Если не хотите шапку, то теоретически можно так было бы написать:
inputenum ENUM_vibros_type_NAME //Определяет метод преобразования выбросов
{
type_Granica=0,//Значение выбросов преобразовываются в близкое к сплиту значение
type_Random=1,//Значение выбросов преобразовываются в случайное значение в диапазоне вне выбросов
} Vibros_type = type_Granica;
Спасибо. Нужно будет проверить. Всегда объявлял в производных тоже виртуальными.
Я то же объявляю, но это не обязательно
Понятно. Жаль, потому что при "=" придется сначала объявлять объекты а потом присваивать массиву, это увеличит код как минимум в два раза (хотя, благо, это нужно сделать всего один раз, а далее просто обращаться к массиву через цикл).
Не заморачиваюсь и пишу лаконично. Потенциальная проблема здесь.
Неизменяемый объект при желании может меняться, но это нужно явно захотеть, создав определенную конструкцию. Т.е. программист специально что-то делает, понимая, к чему это приведет.
В случае же с массивами конструкцию создавать не нужно, поэтому программист может не понимать, что случайно поменял объект, и теперь объект стал вести себя не так, как планировалось.
Это правильное поведение.Понятно. Жаль, потому что при "=" придется сначала объявлять объекты а потом присваивать массиву, это увеличит код как минимум в два раза (хотя, благо, это нужно сделать всего один раз, а далее просто обращаться к массиву через цикл).
В данном случае уместна будет запись в строку и нумерация с 0:
В данном случае уместно будет запись в строку:
Объект может не создаться. Невалидный указатель в массиве тогда будет.
Объект может не создаться. Невалидный указатель в массиве тогда будет.
Согласен - еще один аргумент против {} и мнимой лаконичности
Тем более, что создание одного объекта может зависеть от предыдущего и ошибка в 1ом наверняка должна препятствовать созданию остальных return после обработки ошибкиСогласен - еще один аргумент против {} и мнимой лаконичности
Тем более, что создание одного объекта может зависеть от предыдущего и ошибка в 1ом должна препятствовать созданию остальных return после обработки ошибкиага, здорово!
ретурн в инициализации советника. удобно работать таким образом, учитывая что таких сущностей-индикаторов несколько десятков.
Зачем формируется шапка/рамка тут при использовании Стилизатора?
Мне она кажется явно лишней.
Зачем формируется шапка/рамка тут при использовании Стилизатора?
Мне она кажется явно лишней.
Если не хотите шапку, то теоретически можно так было бы написать:
Но в MQL почему то такая запись выдает ошибку !?