Ошибки, баги, вопросы - страница 2362
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
((CMyclass*)base.GetNodeAtIndex(i)).x
Попробуйте как я выше написал. Хотя typedef тут не сильно нужен, ибо является лишней "прокладкой" между кодом и вызовом функции. Вы все равно не сможете перегрузить этот вызов для другого класса,используя тот же самый указатель. Придется делать новый для каждого класса. Пора Вам уже понять, что typedef чуть менее чем полностью бесполезны, имхо :)
попробовал, но все равно не умею с дефанами работать, наука сложная , ошибку получил: tst_file EURUSD,H1: invalid pointer access in 'tst_file.mq4' (31,56)
((CMyclass*)base.GetNodeAtIndex(i)).x
УРА! ЗАРАБОТАЛО!!!
Спасибо!
;)
попробовал, но все равно не умею с дефанами работать, наука сложная , ошибку получил: tst_file EURUSD,H1: invalid pointer access in 'tst_file.mq4' (31,56)
Я бы сильно удивился, если бы мой цикл заработал с Вашим библиотечным нодом)))
Я имел в виду код с typedef в своем прошлом посте, конечно)))
УРА! ЗАРАБОТАЛО!!!
Спасибо!
;)
Неужели, а чего же Вы сразу самое очевидное не попробовали? :) Так хотелось позажигать с typedef? =)))
Неужели, а чего же Вы сразу самое очевидное не попробовали? :) Так хотелось позажигать с typedef? =)))
я попробовал! но была уверенность, что не получится указатель разыменовать средствами MQL, оказалась все банально - нужно было больше скобок ставить! ))))
ЗЫ: typedef это тема, пробовал, но тож не очень пошло, нужно еще разбираться где накосячил, должно и с помощью typedef мой пример работать!
По каким причинам индикатор может не работать только на M1 графике а на всех остальных работать без сбоев? (MQL5). Вот функция - и когда на графике М1 ей дать 0, то оду переменную она почемуто не сумирует
Это значит там есть свеча, у которой Open = Close, а сам код написан криво и не содержит проверки на деление на 0. От ТФ это печальное обстоятельство никак не зависит.
typedef это тема, пробовал, но тож не очень пошло, нужно еще разбираться где накосячил, должно и с помощью typedef мой пример работать!
Код, который я написал выше, должен работать. Хотел было у себя проверить, но не судьба: =)))))))))))
(билд 1961)
typedef это тема, пробовал, но тож не очень пошло, нужно еще разбираться где накосячил, должно и с помощью typedef мой пример работать!
А можете сделать проще и изящее - без лишних скобок и указателей - (и компилируется без странных ошибок))))
А можете сделать проще и изящее - без лишних скобок и указателей - (и компилируется без странных ошибок))))
не прокатит для моего случая Ваш пример, у меня обьекты динамически создаются, я даже имя им не присваиваю, а Ваш пример через обращение к имени указателя, вот так пробовал, не пропускает компилятор: '[' - name expected tst_cast.mq4 32 15
ЗЫ: немного начал понимать, что Вы предлагаете, но все равно результата нет, можно и без dynamic_cast <> обойтись, добавить поле * CObject , в теории вот так должно быть:
думаю так будет чуть быстрее работать, чем Ваш пример с dynamic_cast <> - смысл вроде один и тот же
если возможность в MQL разыменовывать указатель *CObject ?
пробовал разные варианты, вот скрипт для теста, добавляю в связанный список 3 элемента Myclass и потом изменяю значения полей CMyclass, так все работает:
могу ли я изменять поля динамически созданных элементов CMyclass, без промежуточного указателя CMyclass *result ?
примерно так: (CMyclass *)(base.GetCurrentNode()).x = 99;
PS: подозреваю, что нужно использовать typedef , но пока неудачно
То, что Вы написали просто неявное использование того же:
Т.е. такой анонимный указатель, а по сути просто синтаксический сахар. Сахара в MQL почти нет, поэтому так не получиться сделать. Но замечу приведение типа к потомку идет без всяких там проверок и преобразований потому очень быстро, из-за этого не совсем понятно, чем Вам так не угодила явная работа с указателем.