Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 93
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Принты можно вставить только внутри функции, а как вызвать эту функцию что бы принт или алерт заработал не пойму. Вы можете помочь исправив мой код с тремя простыми переменными??? Я все делаю как и описано в статье, но редактор не пропускает, или что то не дописано или что то не допонято, влюбом случае стена, собственно поэтому и обратился за помощю. За SKC спасибо.
Вы алертом выводите d.
А где она у вас рассчитывается?
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int InputA=1;
input int InputB=3;
class ASD
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
int m_d=m_a+m_b;
d=m_d;
Print(__FUNCTION__);
return(c(m_a,m_b));
}
public:
int a;
int b;
int d;
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d);
}
//+------------------------------------------------------------------+
Внутри класса сделайте Print'ы значениям. А потом глядите в журнале что там будет распечатано при запуске скрипта ;)
И так также ничего
класс:
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int a_s;
int a_d;
int d;
int g ()
{d=a_s+a_d;
return (g());
}
public:
void fg (int a,int b)
{ a_s=a;
a_d=b;
}
void sf ()
{g ();
Alert (d);}
};
скрипт
ASD ar;
void OnStart()
{
ar.fg (3,5);
ar.sf ();
}
И так также ничего
класс:
И так также ничего
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int InputA=1;
input int InputB=3;
class ASD
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
public:
int a;
int b;
int d;
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
d=m_a+m_b;
Print(__FUNCTION__);
return(d);
}
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d,"\nar.c(",ar.a,",",ar.b,")=",ar.c(ar.a,ar.b));
}
//+------------------------------------------------------------------+
Вот не понятно - чего хотите получить-то?
Хочу:
1. из скрипта в класс передать данные
2. в классе произвести сумму этих данных
3. из класса в скрипт передать сумму
4. из скрипта вывести сумму данных на монитор или принтер.
Все!
Хочу:
1. из скрипта в класс передать данные
2. в классе произвести сумму этих данных
3. из класса в скрипт передать сумму
4. из скрипта вывести сумму данных на монитор или принтер.
Все!
Смотрите выше пример
Но он тоже сумму переменных a+b=d не выдает, а мне нужна сумма d!
Я не показывал то, что он должен считать по-вашему именно. Я показал как нужно получить рассчитанное значение - вызвать функцию c();
Вы же её нигде не вызывали, и ждали что d как-то сама собой посчитается.
А уж что там считает функция c() - это вам решать
Я не показывал то, что он должен считать по-вашему именно. Я показал как нужно получить рассчитанное значение - вызвать функцию c();
Вы же её нигде не вызывали, и ждали что d как-то сама собой посчитается.
А уж что там считает функция c() - это вам решать
Как создать функцию и вызвать ее в эксперте я знаю и пользуюсь. Вопрос возник с классами!
Я не показывал то, что он должен считать по-вашему именно. Я показал как нужно получить рассчитанное значение - вызвать функцию c();
Вы же её нигде не вызывали, и ждали что d как-то сама собой посчитается.
А уж что там считает функция c() - это вам решать
В том то все и дело как вызвать функцию внутри класса, а именно как работают между собой private: public:, как передать данные классу и получить результат из класса. Пока вот это!
Но и ваша функция ничего не расчитывает.