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

 
Roman Sharanov :

아래 클래스 파일

이 메서드는 오류를 반환합니까? 그렇다면 개인 섹션에서 정의하십시오. 당신은 완전히 할 수 있습니다:

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private :
   int       m_var;
   double    varSqrt( void )           const { return ::MathSqrt( this .m_var); }
public :
                     newC( int var );
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC( int var )
  {
       this .m_var = var ;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+

그리고 당신은 할 수 있습니다:

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private :
   int       m_var;
   double    varSqrt( void ) const ;
public :
                     newC( int var );
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC( int var )
  {
       this .m_var = var ;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double newC::varSqrt( void ) const
  {
   return ::MathSqrt( this .m_var);
  }
//+------------------------------------------------------------------+
 
neverness :

글쎄, 이것이 넌센스라면 경험으로 입증됩니다.

그리고 "이론적 넌센스"뿐만 아니라 !!!

그녀입니다.

지표에서 모든 유형의 배열을 쉽게 사용할 수 있습니다. 그리고 버퍼로서 동적 및 정적입니다.

그러나 모든 것이 당신을 위해 작동하지 않으며 경험은 당신에게 미안하지만 일종의 넌센스를 알려줍니다.

 
Artyom Trishkin :

이 메서드는 오류를 반환합니까? 그렇다면 개인 섹션에서 정의하십시오. 당신은 완전히 할 수 있습니다:

그리고 다음을 수행할 수 있습니다.

또는 클래스 내에서 private 클래스 멤버 를 this.m_var로 참조할 수 있습니다.
 
neverness :

글쎄, 이것이 넌센스라면 경험으로 입증됩니다.

그리고 "이론적 넌센스"뿐만 아니라 !!!

아무도 계산에 동적 배열을 사용하는 것을 귀찮게 생각하지 않습니다.

하지만!!! 계산하는 동안 프로세서가 사용 중이며 동적 어레이에 대한 쓰기 작업이 없습니다.

따라서 계산 중에 동적 배열로 들어오는 모든 데이터는 자동으로 무시됩니다. (때로는 보호를 하고 버퍼에 씁니다.)

이것이 분명하기를 바랍니다.

따라서 동적 배열의 모든 데이터는 정적 배열에 분산되어 프로세서 작동 중에 데이터 손실이 없습니다.

따라서 모든 계산은 정적 배열에서 수행되어야 합니다!!!

Brad는 치열하고 포럼의 연대기에 들어갈 가치가 있습니다.

 
Artyom Trishkin :

그녀입니다.

지표에서 모든 유형의 배열을 쉽게 사용할 수 있습니다. 그리고 버퍼로서 동적 및 정적입니다.

그러나 모든 것이 당신을 위해 작동하지 않으며 경험은 당신에게 미안하지만 일종의 넌센스를 알려줍니다.

좋은.

실험을 해보자.

틱 데이터와 관련된 동적 배열 을 가져와서 이 배열의 프로세서를 몇 시간 동안 사용해 보겠습니다.

그리고 지금 이 배열에 무엇을 쓰는지 봅시다!?

이 질문이 마음에 드시나요? (물론 버퍼 없음)

 
neverness :

좋은.

실험을 해보자.

틱 데이터와 관련된 동적 배열 을 가져와서 이 배열의 프로세서를 몇 시간 동안 사용해 보겠습니다.

그리고 지금 이 배열에 무엇을 쓰는지 봅시다!?

이 질문이 마음에 드시나요? (물론 버퍼 없음)

해. 그런 다음 여기에 코드가 있습니다.

 
Artyom Trishkin :

이 메서드는 오류를 반환합니까? 그렇다면 개인 섹션에서 정의하십시오. 당신은 완전히 할 수 있습니다:

그리고 당신은 할 수 있습니다:

네 그랬어요 감사합니다

 
Artyom Trishkin :

해. 그런 다음 여기에 코드가 있습니다.

당연하지.

그럼 보겠습니다.

 

그리고 또 다른 질문.

다음은 내 수업의 구조입니다.

이 클래스에서 작동하는 외부 코드에 대한 요청 시 반환하려면 어떻게 해야 합니까?

 
Roman Sharanov :

그리고 또 다른 질문.

다음은 내 수업의 구조입니다.

이 클래스에서 작동하는 외부 코드에 대한 요청 시 반환하려면 어떻게 해야 합니까?

변수 가시성의 전역 수준에서 구조 자체를 설명함으로써만

그런 다음 클래스에서 구조체 유형의 변수를 선언하십시오.

외부 코드에서 동일한 변수를 선언할 수 있지만 이러한 변수가 OnTick() 내부에서 선언되면 OnTick()이 호출될 때마다 구조체 생성자가 시작됩니다. 그것 - MQL에서는 실제로 클래스와 구조 사이에 차이가 없습니다. 내가 기억하는 유일한 것은 new를 통해 생성된 구조에 대한 매개변수가 있는 생성자가 컴파일러에서 누락되지 않는다는 것입니다.

음, 전체적으로 ... 클래식 OOP에서는 일반적으로 내부 요소(클래스 필드)를 전달하여 "클래스를 넘어서지 않습니다". 일반적으로 모든 것이 Get() ... Set() 클래스에 대한 요청으로 구현됩니다. 음, 그것은 취향의 문제입니다

추신: ....상속을 사용하고 상속인은 공통 클래스를 가집니다. MT 배포(폴더 포함)에서 클래스 소스를 살펴보세요.