MQL5의 OOP에 대한 질문 - 페이지 33

 
Alexey Viktorov :

경제 캘린더 이벤트 CalendarValueHistory()를 선택하는 것은 비밀이 아닙니다. 한 경우에는 모든 뉴스가 시간 범위에 있습니다. 다른 국가와 다른 시간 범위에서. 세 번째로 기호로. 그러나 근본적인 차이가 있습니까? 프로그래밍 강의는 솔루션을 수행하는 작업 유형에 따라 구분합니까?

나는 최근에 운전 시험에 통과하지 못한 어떤 사람을 만났는데, 운전 수업에서 이 교차로에 가지 않았고 그는 단순히 이 교차로에서 운전하는 법을 모른다고 분개했습니다.

클래스를 생성할 때 새로운 데이터 유형이 도입됩니다.

당신의 수업이 정확히 무엇을 하는지는 그렇게 중요하지 않습니다.

클래스 개체를 데이터로 사용하여 무엇을 할 계획입니까?

(배열에 넣고, 함수에 전달하고, 함수에서 반환, ...)

이 클래스가 전혀 필요한지 여부는 아직 명확하지 않습니다.

그리고 필요한 경우 셋이 아닌 하나여야 합니다.

작업에서 하나(또는 세 가지) 기능을 사용할 수 있습니까?

 
Alexey Viktorov :

동경... 여기도 인터페이스가 있는 템플릿을 마스터해야 하나요???

MQL에는 이와 같은 인터페이스가 없습니다. 추상 클래스가 있는 페이지가 몇 개 있었습니다. 동일할 것입니다. 나중에 코드를 읽는 것이 더 쉽습니다.

인터페이스를 통해 다른 생성자로 초기화하는 것이 편리합니다.

도움말 예제에서 키워드 인터페이스에 대한 https://www.mql5.com/ru/docs/basis/types/classes - 이것은 제 일대일 템플릿입니다. 직접 예제를 재현해 보십시오. 아마도 이것이 무엇입니까? 당신이 찾고있는

 
Igor Makanu :

MQL에는 이와 같은 인터페이스가 없습니다. 추상 클래스가 있는 페이지가 몇 개 있었습니다. 동일할 것입니다. 나중에 코드를 읽는 것이 더 쉽습니다.

인터페이스를 통해 다른 생성자로 초기화하는 것이 편리합니다.

도움말 예제에서 키워드 인터페이스에 대한 https://www.mql5.com/ru/docs/basis/types/classes - 이것은 제 일대일 템플릿입니다. 직접 예제를 재현해 보십시오. 아마도 이것이 무엇입니까? 당신이 찾고있는

이고르, 차르가 페도트에게 궁수에게 준 임무를 기억하시나요?

 날 잡아봐
     그럴 수 없는 FAQ!
     당신의 이름을 적어
     서둘러 잊지 않도록!

그리고 그 덩치 큰 두 사람이 대답했습니다.

 shemku al drawing만 있다면 -
     우리는 회전을 시작할 것입니다
     글쎄, 그래서 - 당신이 원하는만큼 많이 봐,
     당신은 악마를 찾을 수 있습니다!

규칙이나 얻어야 할 최종 결과를 모르는 경우 어떻게 무언가를 재현하려고 할 수 있습니까?

 
Alexey Viktorov :

동경... 여기도 인터페이스가 있는 템플릿을 마스터해야 하나요???

글쎄, 그것이 갈망이라면 그것은 당신을위한 것이 아닙니다.
 
Koldun Zloy :

클래스를 생성할 때 새로운 데이터 유형이 도입됩니다.

이 클래스가 전혀 필요한지 여부는 아직 명확하지 않습니다.

그리고 필요한 경우 3개가 아닌 1개여야 합니다.

작업에서 하나(또는 세 가지) 기능을 사용할 수 있습니까?

아마도 당신은 지나갈 수 있고 아마도 당신이 할 수 있을 것입니다. 그러나 지표와 고문 모두에서 연결될 수 있는 클래스를 작성하고 싶습니다. 그리고 여기 내 종탑의 표시기가 있으며, 함수가 다른 버전에서 호출되어야 하는 방식으로 설계되었습니다.

 
Alexey Viktorov :

아마도 당신은 지나갈 수 있고 아마도 당신이 할 수 있을 것입니다. 그러나 지표와 고문 모두에서 연결될 수 있는 클래스를 작성하고 싶습니다. 그리고 여기 내 종탑의 표시기가 있으며, 함수가 다른 버전에서 호출되어야 하는 방식으로 설계되었습니다.

지표와 Expert Advisor 모두에서 함수를 호출할 수도 있습니다.

 
Alexey Viktorov :

OOP의 필요성과 이점을 이해하기 시작한 것 같지만 구현하기가 어렵습니다.

세 가지 다른 변수 세트와 함께 사용해야 하는 클래스가 있습니다. 그러나 그것은 한 가지 일을 합니다. 간단히 말해서 3개의 생성자를 삽입하고 3개의 변수를 선언하고 액세스할 수 있습니다. 그러나 내가 이해하기로는 이것이 완전히 옳은 것은 아닙니다. 또한 두 가지 버전에서 문자열 유형 변수 중 하나는 이름이 다르며 코드의 다른 부분에서 사용됩니다. 물론 변수의 순서를 변경할 수는 있지만 이것이 내가 이해한 대로 완전히 옳은 것은 아닙니다.

new 연산자 에 대한 설명서를 읽고 있지만 이 상황에서 어떻게 도움이 될 수 있는지 이해가 되지 않습니다. 세 개의 다른 개체 변수와 동일한 개체에 대한 세 개의 포인터 사이의 차이점을 알지 못합니다. 이것은 포인터를 한 번 만들고 이 개체를 사용하고 불필요하게 삭제한 경우에 유용할 수 있습니다. 그러나 개체가 주기적으로 필요한 경우 매번 포인터를 만들고 삭제하는 것은 완전히 어리석은 일입니다.

일반적으로 도움을 요청합니다. C++에서 OOP에 대한 설명을 읽었지만 mql5 문서보다 더 나쁘게 설명되어 있습니다. 조바심내지 마시고 많이 부탁드리겠습니다. 설명이없는 기성 코드도 관심이 없습니다. 나는 이것을 이해하고 "우리와 함께하십시오, 우리처럼 ..."

"클래스"의 개념에 가장 가까운 개체는 구조입니다. 구조는 관련 데이터 집합입니다. 저것들. 의미적으로 서로 관련이 있는 이질적인 변수의 그룹입니다. 클래스에서 이 데이터를 관리하는 데 사용할 수 있는 메서드가 여기에 추가됩니다. "메소드"와 가장 유사한 것은 함수입니다. 저것들. 클래스는 내부에 있는 데이터를 관리하고 형성할 수 있는 기능 세트가 내장된 구조입니다. 클래스 개체 내부에서 데이터를 생성하기 위한 다양한 상황 및 옵션에 대해 여러 메서드가 있을 수 있습니다. 귀하의 경우 각 상황에 적절한 방식으로 클래스 내에서 데이터를 형성하는 세 가지 방법이 필요합니다.
클래스에는 기본 생성자가 있어야 합니다. new 연산자를 사용하여 새 클래스 객체를 생성할 때 호출됩니다. 기본 생성자를 MQL 프로그램의 OnInit 함수와 비교합니다.
소멸자는 비유를 계속하면 OnDeinit 함수의 유사체입니다.
개체가 만들어지고 작업이 완료된 직후 개체를 "종료"할 필요는 없습니다. MQL 프로그램이 완료되면 OnDeinit 함수에서 생성된 개체를 "종료"할 수 있으며 프로그램이 실행되는 동안 모든 개체가 메모리에 있고 액세스할 수 있습니다.
 
Koldun Zloy :

지표와 Expert Advisor 모두에서 함수를 호출할 수도 있습니다.

그래서 나는 그것에 대해 의심의 여지가 없습니다. 나는 유행하는 프로그래밍 방식에 합류하고 싶었고, 당신은 나에게 그런 조언을 해주었습니다.))) 따라서 일반적으로 OOP를 거부할 수 있습니다. 그래서 나는 이러한 종소리와 휘파람의 필요성을 이해하지 못하고 당신이 단념합니다. :)))

 
Alexey Viktorov :

그래서 나는 그것에 대해 의심의 여지가 없습니다. 나는 유행하는 프로그래밍 방식에 합류하고 싶었고, 당신은 나에게 그런 조언을 해주었습니다.))) 따라서 일반적으로 OOP를 거부할 수 있습니다. 그래서 나는 이러한 종소리와 휘파람의 필요성을 이해하지 못하고 당신이 단념합니다. :)))

아무 이유 없이 클래스를 사용한다면 OOP가 아닙니다.

예, 이러한 가제트의 필요성을 이해할 때까지 사용하지 않는 것이 좋습니다.

 
BlackTomcat :
"클래스"의 개념에 가장 가까운 개체는 구조입니다. 구조는 관련 데이터 집합입니다. 저것들. 의미적으로 서로 관련이 있는 이질적인 변수의 그룹입니다. 클래스에서 이 데이터를 관리하는 데 사용할 수 있는 메서드가 여기에 추가됩니다. "메소드"와 가장 유사한 것은 함수입니다. 저것들. 클래스는 내부에 있는 데이터를 관리하고 형성할 수 있는 기능 세트가 내장된 구조입니다. 클래스 개체 내부에서 데이터를 생성하기 위한 다양한 상황 및 옵션에 대해 여러 메서드가 있을 수 있습니다. 귀하의 경우 각 상황에 적절한 방식으로 클래스 내에서 데이터를 형성하는 세 가지 방법이 필요 합니다.
클래스에는 기본 생성자가 있어야 합니다. new 연산자를 사용하여 새로운 클래스 객체를 생성할 때 호출됩니다. 기본 생성자를 MQL 프로그램의 OnInit 함수와 비교합니다.
소멸자는 비유를 계속하면 OnDeinit 함수의 유사체입니다.
개체가 만들어지고 작업이 완료된 직후 개체를 "종료"할 필요는 없습니다. MQL 프로그램이 완료되면 OnDeinit 함수에서 생성된 개체를 "종료"할 수 있으며 프로그램이 실행되는 동안 모든 개체가 메모리에 있고 액세스할 수 있습니다.

그래서 세 가지 유사한 방법에서 나도 떠나려고합니다. 결국, 그들은 거의 동일합니다. 캘린더 이벤트의 배열을 수신하고 불필요한 항목을 필터링한 후 추가 처리를 위한 배열을 제공합니다.