MQL5의 OOP에 대한 질문 - 페이지 5 123456789101112...96 새 코멘트 Artyom Trishkin 2019.07.04 12:52 #41 이 주제와 관련이 없는 댓글은 " MQL4 및 MQL5에 대한 모든 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 "으로 이동되었습니다. Dmitry Fedoseev 2019.07.04 13:00 #42 Vladimir Simakov : 어서 해봐요! 그것이 내가 항상 사용하는 것입니다. 어디에? 어디서 어떻게? 사회자, 질문을 반복해서 죄송합니다. 나는 정말로 그것에 대한 답을 얻고 싶습니다. Vladimir Simakov 2019.07.04 13:12 #43 Artyom Trishkin : 그리고 함수에 전달 된 포인터를 의도적으로 재할당한 이유는 무엇입니까? 물론 누수가 있을 것입니다. 그러나 이것은 "고전적인 누출"이 아니라 개체에 대한 포인터로 작업하는 고전적인 오류입니다. 여기에서 새 개체를 만들 필요는 없지만 함수에 전달되는 포인터인 외부 개체로 작업해야 합니다. 내가 아니야. 이 스레드에서 다른 사람의 코드에서 가져왔습니다. 예를 들어. Vladimir Simakov 2019.07.04 13:15 #44 Dmitry Fedoseev : 어디에? 어디서 어떻게? 사회자, 질문을 반복해서 죄송합니다. 나는 정말로 그것에 대한 답을 얻고 싶습니다. 인내심을 가지세요. 집에 가서 버릴게. Roman 2019.07.04 13:33 #45 Dmitry Fedoseev : 어디에? 어디서 어떻게? 사회자, 질문을 반복해서 죄송합니다. 나는 정말로 그것에 대한 답을 얻고 싶습니다. 질문을 올바르게 이해했다면 new를 사용하여 클래스를 객체로 선언합니다. 또한 생성된 객체 를 통해 점을 사용하여 클래스의 공용 메서드를 호출합니다. 호출된 모든 메소드를 실행한 후 생성된 삭제 객체를 삭제하여 메모리를 비웁니다. Dmitry Fedoseev 2019.07.04 13:47 #46 Roman : 질문을 올바르게 이해했다면 new를 사용하여 클래스를 객체로 선언합니다. 또한 생성된 객체 를 통해 점을 사용하여 클래스의 공용 메서드를 호출합니다. 호출된 모든 메소드를 실행한 후 생성된 삭제 객체를 삭제하여 메모리를 비웁니다. 아니다. 처음에는 이것이 이와 같은 함수 매개변수라고 생각했습니다. 객체지만 참조가 아니라 끝에 세미콜론이 붙습니다. 이것이 선언할 때 일반적으로 객체를 생성하는 것이라면 괄호 안에 있는 이유는 무엇입니까? 따라서 그것은 세기의 미스터리로 남아 있습니다. Vladimir Simakov 2019.07.04 14:24 #47 Dmitry Fedoseev : 아니다. 처음에는 이것이 이와 같은 함수 매개변수라고 생각했습니다. 객체지만 참조가 아니라 끝에 세미콜론이 붙습니다. 이것이 선언할 때 일반적으로 객체를 생성하는 것이라면 괄호 안에 있는 이유는 무엇입니까? 따라서 그것은 세기의 미스터리로 남아 있습니다. 대괄호 - 이것은 텍스트에 대한 메모이기 때문에)))) Igor Makanu 2019.07.04 14:52 #48 Artyom Trishkin : 그리고 함수에 전달 된 포인터를 의도적으로 재할당한 이유는 무엇입니까? 물론 누수가 있을 것입니다. 그러나 이것은 "고전적인 누출"이 아니라 개체에 대한 포인터로 작업하는 고전적인 오류입니다. 여기서 새 개체를 만들 필요는 없지만 외부 개체로 작업해야 하며 이 개체에 대한 포인터가 함수에 전달됩니다. 예, 제 예는 아니지만 MQL에서 포인터 자체의 구현 - 역참조할 필요가 없습니다(포인터도 개체 인스턴스에 할당할 수 있습니다!). 그러면 포인터를 전달하는 대신 전달할 수 있습니다. 개체에 대한 링크 https://www.mql5.com/en/forum/1111/page2471#comment_11796665 그런 다음 (CObj & obj)가 나타난 위치와 시간에 대한 정보가 전혀 없습니다(게다가 &는 포인터의 이름을 변경하는 작업이 아니라 GetPointer() 포인터를 가져오는 작업입니다). 좋아, 나는 비어 있는 상태에서 비어 있는 상태로 가고 싶지 않다... 나는 이미 나 자신에게 말했고 나는 그것을 포럼에서 다시 반복할 것이다 - MQL은 C++가 아니다, 기간! 그래서 구현 - 글쎄, 옵션이 없습니다 전략이 필요한 사람은 누구입니까? 전문 고문 - 기타 빌 윌리엄스와 그의 전략 Dmitry Fedoseev 2019.07.04 15:08 #49 Igor Makanu : 예, 제 예는 아니지만 MQL에서 포인터 자체의 구현 - 역참조할 필요가 없습니다(포인터는 개체 인스턴스에 할당할 수도 있습니다!). 그러면 포인터를 전달하는 대신 포인터를 전달할 수 있습니다. 개체에 대한 링크 https://www.mql5.com/en/forum/1111/page2471#comment_11796665 그런 다음 (CObj & obj)가 나타난 위치와 시간에 대한 정보가 전혀 없습니다(게다가 &는 포인터의 이름을 변경하는 작업이 아니라 GetPointer() 포인터를 가져오는 작업입니다). 좋아, 나는 비어 있는 상태에서 비어 있는 상태로 가고 싶지 않다... 나는 이미 나 자신에게 말했고 나는 그것을 포럼에서 다시 반복할 것이다 - MQL은 C++가 아니다, 기간! 그래서 구현 - 글쎄, 옵션이 없습니다 당신은 무언가를 극화하고 있습니다. 여기에는 어려움과 이해가 없습니다. Dmitry Fedoseev 2019.07.04 16:21 #50 Vladimir Simakov : 대괄호 - 이것은 텍스트에 대한 메모이기 때문에)))) 자, 여기 있습니다. 이와 같이: void z(CObj * o){ } 다음과 같이 호출할 수 있기 때문에 가능하지도 않지만 더 좋습니다. CObj obj;z( GetPointer (obj)); 참조로 포인터를 전달하는 경우 포인터에 대한 변수가 하나 더 필요합니다. *** 그리고 함수에서 객체를 생성하기 위해 함수에 대한 포인터를 전달해야 하는 경우 작동 방식은 다음과 같습니다. class CObj{ public : int f(){ return ( 33 ); } }; CObj * obj; void OnStart (){ z(obj); delete(obj); } void z(CObj & o){ o = new CObj(); } 그것이 실제로 당신이 OOP에 대해 알고 싶었지만 물어보기가 두려웠던 모든 것입니다))) 123456789101112...96 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
어서 해봐요! 그것이 내가 항상 사용하는 것입니다.
어디에? 어디서 어떻게?
사회자, 질문을 반복해서 죄송합니다. 나는 정말로 그것에 대한 답을 얻고 싶습니다.
그리고 함수에 전달 된 포인터를 의도적으로 재할당한 이유는 무엇입니까? 물론 누수가 있을 것입니다. 그러나 이것은 "고전적인 누출"이 아니라 개체에 대한 포인터로 작업하는 고전적인 오류입니다.
여기에서 새 개체를 만들 필요는 없지만 함수에 전달되는 포인터인 외부 개체로 작업해야 합니다.
어디에? 어디서 어떻게?
사회자, 질문을 반복해서 죄송합니다. 나는 정말로 그것에 대한 답을 얻고 싶습니다.
어디에? 어디서 어떻게?
사회자, 질문을 반복해서 죄송합니다. 나는 정말로 그것에 대한 답을 얻고 싶습니다.
질문을 올바르게 이해했다면 new를 사용하여 클래스를 객체로 선언합니다.
또한 생성된 객체 를 통해 점을 사용하여 클래스의 공용 메서드를 호출합니다.
호출된 모든 메소드를 실행한 후 생성된 삭제 객체를 삭제하여 메모리를 비웁니다.
질문을 올바르게 이해했다면 new를 사용하여 클래스를 객체로 선언합니다.
또한 생성된 객체 를 통해 점을 사용하여 클래스의 공용 메서드를 호출합니다.
호출된 모든 메소드를 실행한 후 생성된 삭제 객체를 삭제하여 메모리를 비웁니다.
아니다. 처음에는 이것이 이와 같은 함수 매개변수라고 생각했습니다. 객체지만 참조가 아니라 끝에 세미콜론이 붙습니다. 이것이 선언할 때 일반적으로 객체를 생성하는 것이라면 괄호 안에 있는 이유는 무엇입니까? 따라서 그것은 세기의 미스터리로 남아 있습니다.
아니다. 처음에는 이것이 이와 같은 함수 매개변수라고 생각했습니다. 객체지만 참조가 아니라 끝에 세미콜론이 붙습니다. 이것이 선언할 때 일반적으로 객체를 생성하는 것이라면 괄호 안에 있는 이유는 무엇입니까? 따라서 그것은 세기의 미스터리로 남아 있습니다.
그리고 함수에 전달 된 포인터를 의도적으로 재할당한 이유는 무엇입니까? 물론 누수가 있을 것입니다. 그러나 이것은 "고전적인 누출"이 아니라 개체에 대한 포인터로 작업하는 고전적인 오류입니다.
여기서 새 개체를 만들 필요는 없지만 외부 개체로 작업해야 하며 이 개체에 대한 포인터가 함수에 전달됩니다.
예, 제 예는 아니지만 MQL에서 포인터 자체의 구현 - 역참조할 필요가 없습니다(포인터도 개체 인스턴스에 할당할 수 있습니다!). 그러면 포인터를 전달하는 대신 전달할 수 있습니다. 개체에 대한 링크 https://www.mql5.com/en/forum/1111/page2471#comment_11796665
그런 다음 (CObj & obj)가 나타난 위치와 시간에 대한 정보가 전혀 없습니다(게다가 &는 포인터의 이름을 변경하는 작업이 아니라 GetPointer() 포인터를 가져오는 작업입니다).
좋아, 나는 비어 있는 상태에서 비어 있는 상태로 가고 싶지 않다... 나는 이미 나 자신에게 말했고 나는 그것을 포럼에서 다시 반복할 것이다 - MQL은 C++가 아니다, 기간! 그래서 구현 - 글쎄, 옵션이 없습니다
예, 제 예는 아니지만 MQL에서 포인터 자체의 구현 - 역참조할 필요가 없습니다(포인터는 개체 인스턴스에 할당할 수도 있습니다!). 그러면 포인터를 전달하는 대신 포인터를 전달할 수 있습니다. 개체에 대한 링크 https://www.mql5.com/en/forum/1111/page2471#comment_11796665
그런 다음 (CObj & obj)가 나타난 위치와 시간에 대한 정보가 전혀 없습니다(게다가 &는 포인터의 이름을 변경하는 작업이 아니라 GetPointer() 포인터를 가져오는 작업입니다).
좋아, 나는 비어 있는 상태에서 비어 있는 상태로 가고 싶지 않다... 나는 이미 나 자신에게 말했고 나는 그것을 포럼에서 다시 반복할 것이다 - MQL은 C++가 아니다, 기간! 그래서 구현 - 글쎄, 옵션이 없습니다
당신은 무언가를 극화하고 있습니다. 여기에는 어려움과 이해가 없습니다.
대괄호 - 이것은 텍스트에 대한 메모이기 때문에))))
자, 여기 있습니다.
이와 같이:
void z(CObj * o){ }
다음과 같이 호출할 수 있기 때문에 가능하지도 않지만 더 좋습니다.
z( GetPointer (obj));
참조로 포인터를 전달하는 경우 포인터에 대한 변수가 하나 더 필요합니다.
***
그리고 함수에서 객체를 생성하기 위해 함수에 대한 포인터를 전달해야 하는 경우 작동 방식은 다음과 같습니다.
그것이 실제로 당신이 OOP에 대해 알고 싶었지만 물어보기가 두려웠던 모든 것입니다)))