![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да нет тут указателей) Для класса есть хэндл, да работа с ним похожа на работу с указателем, но на этом все общее и заканчивается.
два дня и две ночи пытливый ум и шаловливые ручки не давали мне покоя
пытался удалить динамически созданный обьект вне области видимости - в функции, методом тыка ну все же попал на решение:
так удаляет, но догадаться вот так сходу.... да и не нашел ни в справке ни в СБ похожих сигнатур функции для передачи указателей
такой вопрос еще:
а как вернуть указатель на обьект по ссылке в качестве результат выполнения функции ?
т.е. хочу что то такое сделать:
вернуть CTest * без проблем можно, а как написал ret_CTest() - выдает ошибку
два дня и две ночи пытливый ум и шаловливые ручки не давали мне покоя
пытался удалить динамически созданный обьект вне области видимости - в функции, методом тыка ну все же попал на решение:
так удаляет, но догадаться вот так сходу.... да и не нашел ни в справке ни в СБ похожих сигнатур функции для передачи указателей
Что значит вне области видимости? вы же передали его в функцию, значит он там видим)
з.ы. void deleteCTest(CTest* &t) без этого & тоже должен работать же, или не?
Чтобы действительно удалить вне области где он был создан, да ещё и возможно автоматом, нужен ... тссс... пока никто не слышит... Паттерн Фабрика... читай быстрее и удаляю...
Igor Makanu:
а как вернуть указатель на обьект по ссылке в качестве результат выполнения функции ?
вернуть CTest * без проблем можно, а как написал ret_CTest() - выдает ошибку, то у класса должен быть конструктор копирования.
з.ы. void deleteCTest(CTest* &t) без этого & тоже должен работать же, или не?
проверь, узнаешь много нового ;)
пишу же который раз, что указатели в MQL штука очень познавательная )))
Если ты хочешь кошерное , то не судьба, пока, а если так:
, то у класса должен быть конструктор копирования.
опять подумать нужно
есть подозрение, что с GetPointer() какие то фокусы можно сделать... но не факт.... вот "эти скачки через пространство и время" - через указатель и неявное разыменование в MQL - это вынос мозга !!! (((
проверь, узнаешь много нового ;)
пишу же который раз, что указатели в MQL штука очень познавательная )))
Удаляет, но вот новое значение _test так не присвоить. MQL здесь кстати не причем)))
проверь, узнаешь много нового ;)
пишу же который раз, что указатели в MQL штука очень познавательная )))
опять подумать нужно
есть подозрение, что с GetPointer() какие то фокусы можно сделать... но не факт.... вот "эти скачки через пространство и время" - через указатель и неявное разыменование в MQL - это вынос мозга !!! (((
Да нормально тут все))) Просто от шарпа отключись, тут даже намека на него нет)))
проверь, узнаешь много нового ;)
пишу же который раз, что указатели в MQL штука очень познавательная )))
Ну проверил. Удаляется отлично и без & ;)
А то что принт не выводит, попробуй вот это в МТ4 и в МТ5 и сравни )
Ну проверил. Удаляется отлично и без & ;)
А то что принт не выводит, попробуй вот это в МТ4 и в МТ5 и сравни )
не полный пример дал, сегодня столкнулся
так не будет работать без &
Да нормально тут все))) Просто от шарпа отключись, тут даже намека на него нет)))
да не ищу я Шарп, с MQL все еще разбираюсь, что не понял - беру спрашиваю
не полный пример дал, сегодня столкнулся
так не будет работать без &
не полный пример дал, сегодня столкнулся
так не будет работать без &
По моему, это не связано со ссылками, а лишь с тем что аргумент функции если хочешь чтобы сохранил значение после работы функции, то должен передаваться по указателю. тоже самое будет например с хендлом файла или индикатора, которые ссылками не являются.
И вроде как С++ так по стандарту всегда было, хотя давно уже, смутно помню.