Особенности языка mql5, тонкости и приёмы работы - страница 113
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не понимаю, чем хуже моё решение, вставлю и его сюда:
Тем что изначально это был спектакль "смотрите как я умею" и требовалось именно то решение, которое было заранее придумано. А ваше не вписывалось в постановку.
Но даже режиссёр не учёл что согласно Документации порядок вычисления параметров не гарантируется
Но даже режиссёр не учёл что согласно Документации порядок вычисления параметров не гарантируется
Справедливости ради надо отметить, что в документации MQL всё же описан этот момент:
Примечание
Необходимо помнить, что параметры передаются в функцию задом наперед, то есть сначала вычисляется и передается самый последний параметр, затем предпоследний и так далее. Последним по очереди вычисляется и передается параметр, стоящий первым после открывающей скобки.
И далее там даже приведён пример использования этого порядка. С точки зрения C++ это конечно дикость, но если в MQL это задокументированое правило, то может и нормально, если ты не планируешь портировать свои коды в будущем. А если и планируешь, то можно обезопасить это место проверкой #ifdef __MQL__
порядок вычисления параметров не гарантируется
Только сейчас обратил внимание на вашу ссылку. Действительно, там не гарантируется. Вот уж этот противоречивый MQL ))
Только сейчас обратил внимание на вашу ссылку. Действительно, там не гарантируется. Вот уж этот противоречивый MQL ))
На x32 обратный (думаю сохранится), потому что там прямая связь со стеком. А на x64 смысла в обратном нет, поэтому и гарантий на будущее нет... более того он там выглядит неестественным
Не удивлюсь даже если разный порядок будет с оптимизацией и без
За все предложенные варианты хочу сказать Спасибо. Конструктивно помогли решить практическую задачу.
Задача хорошо показала, что если бы вызывался void TimeCurrent(), то ничего бы не вышло. void в текущем виде в состоянии изуродовать многое.
Хочу вызвать метод родителя
Вот код, что я делаю не так ???
//+------------------------------------------------------------------+
class A
{
public:
virtual int Test_A()
{
return 100;
}
};
//+------------------------------------------------------------------+
class B :public A
{
public:
virtual int Test_A()
{
return 200;
}
};
B b;
//+------------------------------------------------------------------+
void OnStart()
{
Comment (A::b.Test_A());
}
//+------------------------------------------------------------------+
Хочу вызвать метод родителя
правильный синтаксис такой:
но в mql нету ни правильного, ни неправильного.
но вопрос больше к вам - если фукционал нужно вызывать из производного - зачем его пихать в базовую виртуальную функцию?
fxsaber:
Задача хорошо показала, что если бы вызывался void TimeCurrent(), то ничего бы не вышло. void в текущем виде в состоянии изуродовать многое.
Навскидку:
Два макроса, вроде не сильно больно. Что-то более элегантное, силами мкл, в голову не приходит.
Навскидку:
А зачем там do...while? Достаточно одних фигурных скобок
Чтобы работало: