По идее, в последнем билде должно просто копироваться. Тут писали в пункте 8:
"MQL5: Добавлена автоматическая генерация
неявного оператора копирования для объектов структур и классов. Теперь
компилятор автоматически создает операторы копирования, что позволяет
писать для объектов простые записи вида b=a:"
Зачем делать сложно, то, что проще простого )) Есть же CList и CArrayObj, что хочешь, то и используй. Дык нет же, упорно лезем в нативные массивы. Уже и пример человеку написали.
Зачем делать сложно, то, что проще простого )) Есть же CList и CArrayObj, что хочешь, то и используй. Дык нет же, упорно лезем в нативные массивы. Уже и пример человеку написали.
Расскажите пожалуйста немного подробнее.
Как удалить элемент с моего массива, т.е. как применить CList
к примеру имеем вот такое обьявление
MyClass* Arr[5]; - нужно удалить второй элемент
В примере кода я не разобрался - у меня не получилось(
Попробовал использовать класс из стандартной библиотеки CList, попробовл удалить элементы массива, все получилось, НО теперь не понятно как обращаться к моему классу а именно к его методам и переменным???
CList *myList=new CList;
for (int i=0;i<5;i++)
myList.Add(new MyClass);- это мой класс
myList.Delete(1);
myList.Delete(2);
delete(myList);
Попробовал использовать класс из стандартной библиотеки CList, попробовл удалить элементы массива, все получилось, НО теперь не понятно как обращаться к моему классу а именно к его методам и переменным???
Справку читайте, конкретно
Справочник MQL5 / Стандартная библиотека / Коллекции данных / CList / GetNodeAtIndex
Надо получить указатель на экземпляр вашего MyClass и далее с ним работать
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Так вот вопрос - как сдвинуть? ArrayCopy() для классов не работает
Здесь у вас указатели используются, для них сработает ArrayCopy. Вы почти все правильно делаете в первом посте, только не в том порядке.
По идее, в последнем билде должно просто копироваться. Тут писали в пункте 8:
"MQL5: Добавлена автоматическая генерация неявного оператора копирования для объектов структур и классов. Теперь компилятор автоматически создает операторы копирования, что позволяет писать для объектов простые записи вида b=a:"
Зачем делать сложно, то, что проще простого )) Есть же CList и CArrayObj, что хочешь, то и используй. Дык нет же, упорно лезем в нативные массивы. Уже и пример человеку написали.
Зачем делать сложно, то, что проще простого )) Есть же CList и CArrayObj, что хочешь, то и используй. Дык нет же, упорно лезем в нативные массивы. Уже и пример человеку написали.
Расскажите пожалуйста немного подробнее.
Как удалить элемент с моего массива, т.е. как применить CList
к примеру имеем вот такое обьявление
MyClass* Arr[5]; - нужно удалить второй элемент
В примере кода я не разобрался - у меня не получилось(Расскажите пожалуйста немного подробнее.
Как удалить элемент с моего массива, т.е. как применить CList
к примеру имеем вот такое обьявление
MyClass* Arr[5]; - нужно удалить второй элемент
В примере кода я не разобрался - у меня не получилось(Вам же в посте 4 Andrey Miguzov написал подробный пример.
Вам же в посте 4 Andrey Miguzov написал подробный пример.
Уфффф все смешалось в доме Облонских ))
Уфффф все смешалось в доме Облонских ))
Приятного аппетита)
Попробовал использовать класс из стандартной библиотеки CList, попробовл удалить элементы массива, все получилось, НО теперь не понятно как обращаться к моему классу а именно к его методам и переменным???
Попробовал использовать класс из стандартной библиотеки CList, попробовл удалить элементы массива, все получилось, НО теперь не понятно как обращаться к моему классу а именно к его методам и переменным???
Справку читайте, конкретно
Надо получить указатель на экземпляр вашего MyClass и далее с ним работать
MyClass* mc = (MyClass*)myList.GetNodeAtIndex(3);