![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот это: (* ) здесь не нужно
* нужно в мкл только тогда когда непосредственно к * указателю применяются операции =, ==, !=, !, && или ||ВОт как раз по ИМХО это необходимо, чтобы не забывать с чем именно имеешь дело (объект или указатель на него).
убрать его снова, и сделать вид, что его и не было)))
Таки да. Дальнейшее развитие с указателями приведет к созданию полного клона C++.
Наверное всё таки пойдут в направлении C# где в "managed code" указателей нет а всё есть объект, даже простые типы bool int double и т.д.
И ещё, кстати, вполне может получится так, что раз на всех официальных каналах (форум, справка, документация) об операторе * гробовая тишина, возможно, админы раздумывают как раз о том, чтобы убрать его снова, и сделать вид, что его и не было))) Так что сильно рассчитывать на его использование вообще опасно пока имхо.
Тишина наверно потому, что для 99.9% пользователей до всего этого нет дела. Зачем их моск напрягать лишней информацией? А те, кому эта фича была нужна - попросили, и получили её.
Ведь вам тоже не было дела до этой фичи до сего момента, не так ли? А теперь начинаете отчаянно придумывать оправдания, почему вы о ней не знали ;) Какая разница, когда её ввели: сразу или спустя месяца? Вы о ней как не знали, так и продолжали бы не знать, если б я не сказал )
Хм... Может, и указатели на массив есть ? Надо бы проверить... Мне их так не хватает...
Хм... Может, и указатели на массив есть ? Надо бы проверить... Мне их так не хватает...
Нет. Приходится массивы в классы засовывать, на них есть указатели.
Нет. Приходится массивы в классы засовывать, на них есть указатели.
Да, увы.
Собственно, мне вполне удобны классы-наследники CArray. Единственное, для чего бы хотелось указатели на массивы - это индикаторы, там передаются ссылки на массивы, и приходится эти ссылки "тащить через всю иерархию" объектов, что жутко неудобно...
Когда-то я предлагал либо сделать указатели на массивы, либо сделать функцию индикатора, которая бы использовала не ссылки на массивы, а указатели на массивы Стандартной Библиотеки, но, увы, мне было отказано на том основании, что, мол, "если разрешить указатели на массивы, возникнет возможность использования неинициализированных массивов", хотя с объектами таких опасений у разработчиков не возникает... Ну да - ладно, пусть это остается на их совести.
2. MQL и не должен удалять то, что он не выделил. Верно выше сказал Дмитрий - создал объект - удали. Мне крайне не нравится практика "уборщика мусора" в том же C#, когда объекты удаляются не тогда, когда это предусмотрено мной, а тогда, когда захочется сборщику.
Никогда сборщик C# не удалит живой объект или указатель. Его предназначение удалять мусор из трупиков из кучи и иногда ее дефрагментировать.
Никогда сборщик C# не удалит живой объект или указатель. Его предназначение удалять мусор из трупиков из кучи и иногда ее дефрагментировать.
Дык я не утверждаю, что сборщик мусора удалит живой объект или указатель. Я говорю о том, что он его удалит тогда, когда ему хочется. А это, на мой взгляд, не есть хорошо.
Я-то могу работать и с удалением, и без. И даже смарт-поинтеры можно запилить... Но, тем не менее, считаю, что удаление объектов должно быть, и удалять объект должен тот, кто его создал.
Такой вот я олдскульный закостенелый старпер.
Наверное всё таки пойдут в направлении C# где в "managed code" указателей нет а всё есть объект, даже простые типы bool int double и т.д.
Да, но при этом оставили возможность работы с указателями в unmanaged. Правда, у такого кода есть ограничения на дистрибьюцию.
Дык я не утверждаю, что сборщик мусора удалит живой объект или указатель. Я говорю о том, что он его удалит тогда, когда ему хочется. А это, на мой взгляд, не есть хорошо.
Я-то могу работать и с удалением, и без. И даже смарт-поинтеры можно запилить... Но, тем не менее, считаю, что удаление объектов должно быть, и удалять объект должен тот, кто его создал.
Такой вот я олдскульный закостенелый старпер.
Жорж, ты бы привел пример, я тебя не понимаю. Ты это имеешь в виду, что ли? Наверное, смарт-пойнтеры можно сделать и самому.
Жорж, ты бы привел пример, я тебя не понимаю. Ты это имеешь в виду, что ли? Наверное, смарт-пойнтеры можно сделать и самому.
Нет. Понятно, что в данном случае переменная должна быть удалена при выходе из блока.
Я говорю про объекты, созданные по new:
CMyObj* pmoObject = new CMyObject;
В стандарте С# указывается: "И объекты типа значения, такие как структуры, и объекты ссылочного типа, такие как классы, уничтожаются автоматически, но объекты типа значения уничтожаются при уничтожении содержащего их контекста, в то время как объекты ссылочного типа уничтожаются сборщиком мусора через неопределенное время после удаления последней ссылки на них"
Вот, мне это "неопределенное время" - не нравится. Хотя, я даже допускаю, что сборщик мусора может удалить объект куда эффективнее, чем я сам, удаляя объект в деструкторе создавшего его класса.