MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 93

 
Vikon :
인쇄는 함수 내부에만 삽입할 수 있지만 인쇄 또는 경고가 작동하도록 이 함수를 호출하는 방법을 모르겠습니다. 세 가지 간단한 변수로 내 코드를 수정하여 도움을 줄 수 있습니까??? 글에 설명된 대로 다 하고 있는데 에디터가 건너뛰지 않거나, 뭔가가 추가되지 않거나, 이해가 안 되는 경우가 있어서 어떤 경우에도 벽에 도움을 요청하게 되었습니다. 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);
  }
//+------------------------------------------------------------------+
그리고 자신을 호출한 결과에 대한 호출을 반환하는 메서드는 무엇입니까?
 
Artyom Trishkin :
클래스 내에서 값을 인쇄합니다. 그런 다음 스크립트를 실행할 때 인쇄되는 내용을 로그에서 확인하세요.)

그리고 또한 아무것도

수업:

class ASD
  {
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);}

  };


스크립트

#include <ASD.mqh>
ASD ar;
void OnStart ()
  {

   ar.fg ( 3 , 5 );
   ar.sf ();
}
 
Vikon :

그리고 또한 아무것도

수업:

명확하지 않습니다. 무엇을 얻고 싶습니까?
 
Vikon :

그리고 또한 아무것도

//+------------------------------------------------------------------+
//|                                                      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));
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin :
명확하지 않습니다. 무엇을 얻고 싶습니까?

원하다:

1. 스크립트에서 클래스로 데이터 전송
2. 이 데이터의 합을 생성하는 클래스에서
3. 클래스에서 스크립트로 금액 전송
4. 스크립트의 데이터 합계를 모니터나 프린터로 출력합니다.

모두!

 
Vikon :

원하다:

1. 스크립트에서 클래스로 데이터 전송
2. 이 데이터의 합을 생성하는 클래스에서
3. 클래스에서 스크립트로 금액 전송
4. 스크립트의 데이터 합계를 모니터나 프린터로 출력합니다.

모두!

위의 예를 참조하십시오
 
Artyom Trishkin :
위의 예를 참조하십시오
그러나 그것은 또한 변수 a + b = d의 합을 제공하지 않지만 합 d가 필요합니다! 그리고 이 금액은 비공개로 어떻게 계산됩니까? 그렇지 않으면 벽이 있습니다!
 
Vikon :
그러나 그것은 또한 변수 a + b = d의 합을 제공하지 않지만 합 d가 필요합니다!

나는 그가 당신의 의견으로 정확히 무엇을 계산해야하는지 보여주지 않았습니다. 나는 계산된 값을 얻는 방법을 보여주었다 - c() 함수를 호출한다 ;

당신은 그것을 아무데도 부르지 않았고 d가 어떻게 든 스스로를 계산하기를 기다렸습니다.

그리고 c() 함수가 생각하는 것은 당신에게 달려 있습니다.

 
Artyom Trishkin :

나는 그가 당신의 의견으로 정확히 무엇을 계산해야하는지 보여주지 않았습니다. 나는 계산된 값을 얻는 방법을 보여주었다 - c() 함수를 호출한다 ;

당신은 그것을 아무데도 부르지 않았고 d가 어떻게 든 스스로를 계산하기를 기다렸습니다.

그리고 c() 함수가 생각하는 것은 당신에게 달려 있습니다.

EA에서 함수를 만들고 호출하는 방법을 알고 사용합니다. 문제는 수업에서 발생했습니다!

 
Artyom Trishkin :

나는 그가 당신의 의견으로 정확히 무엇을 계산해야하는지 보여주지 않았습니다. 나는 계산된 값을 얻는 방법을 보여주었다 - c() 함수를 호출한다 ;

당신은 그것을 아무데도 부르지 않았고 d가 어떻게 든 스스로를 계산하기를 기다렸습니다.

그리고 c() 함수가 생각하는 것은 당신에게 달려 있습니다.

이것이 클래스 내에서 함수를 호출하는 방법, 즉 private: public: 서로 작업하는 방법, 클래스에 데이터를 전달하고 클래스에서 결과를 얻는 방법의 요점입니다. 지금은 여기입니다!

그러나 또한 귀하의 기능은 아무 것도 계산하지 않습니다.