오류, 버그, 질문 - 페이지 1875 1...186818691870187118721873187418751876187718781879188018811882...3184 새 코멘트 Koldun Zloy 2017.04.25 09:40 #18741 아마도 OnStart() 함수 에서 수동으로 호출하기 때문일 것입니다. 정적 객체의 소멸자는 이 함수 다음에 역순으로 호출됩니다. fxsaber 2017.04.25 09:47 #18742 Koldun Zloy : 아마도 OnStart() 함수 에서 수동으로 호출하기 때문일 것입니다. 정적 객체의 소멸자는 이 함수 다음에 역순으로 호출됩니다. 모든 것이 바로 여기에서 작동해야 하는 것 같습니다. template < typename T> struct PTR { T* Ptr; PTR( void ) { } void operator =( T* &Value ) { this .Ptr = Value; } ~PTR( void ) { Print ( __FUNCSIG__ ); delete this .Ptr; } }; class CLASS { private : static PTR<CLASS> Ptr; static CLASS* Tmp; CLASS() { CLASS::Ptr = CLASS::Tmp; } }; static PTR<CLASS> CLASS::Ptr; static CLASS* CLASS::Tmp = new CLASS; void OnStart () { } 하지만 누수가 발생하고 있습니다. 개는 어디를 팠습니까? Koldun Zloy 2017.04.25 09:55 #18743 fxsaber : 모든 것이 바로 여기에서 작동해야 하는 것 같습니다. 하지만 누수가 발생하고 있습니다. 개는 어디를 팠습니까? 두 개의 개체를 만들고 하나만 삭제합니다. CLASS::Tmp 개체가 필요한 이유는 무엇입니까? fxsaber 2017.04.25 10:13 #18744 Koldun Zloy : 두 개의 개체를 만들고 하나만 삭제합니다. 두 개체는 어디에서 생성됩니까? CLASS::Tmp 개체가 필요한 이유는 무엇입니까? 덕분에 더 이상 필요하지 않습니다. 그러나 언어를 이해하려면 여전히 예제에서 누수가 발생하는 이유를 이해해야 합니다. 숨겨진 생성자가 있는 숨겨진 객체는 어떤 경우에는 논리적입니다(아마도 가장 명백한 것 ). Koldun Zloy 2017.04.25 10:30 #18745 네, 제가 틀렸습니다. 하나의 개체만 생성되고 삭제되지 않았습니다. 왜냐하면 생성자를 호출할 때 CLASS() { CLASS::Ptr = CLASS::Tmp; } CLASS::Tmp에는 여전히 개체의 주소가 아닌 가비지가 포함되어 있습니다. Sergey Dzyublik 2017.04.25 10:36 #18746 1) 정적 PTR<CLASS> CLASS::Ptr 구조가 생성됩니다. 2) 새로운 CLASS라는 클래스가 생성됩니다. CLASS() 생성자를 실행하고 CLASS::Ptr이 Null에 할당됩니다. 3) CLASS::Tmp 값이 새 CLASS에 대한 포인터로 업데이트됩니다. 4) PTR<CLASS> CLASS::Ptr 구조가 삭제되고 소멸자가 실행되며 CLASS::Ptr 삭제를 시도합니다(Null). fxsaber 2017.04.25 10:45 #18747 Koldun Zloy : CLASS::Tmp에는 여전히 개체의 주소가 아닌 가비지가 포함되어 있습니다. 고맙습니다! 어떻게 든 나는이 증거를 보지 못했습니다. 세르게이 주블릭 : 1) 정적 PTR<CLASS> CLASS::Ptr 구조가 생성됩니다. 2) 새로운 CLASS라는 클래스가 생성됩니다. CLASS() 생성자를 실행하고 CLASS::Ptr이 Null에 할당됩니다. 3) CLASS::Tmp 값이 새 CLASS에 대한 포인터로 업데이트됩니다. 4) PTR<CLASS> CLASS::Ptr 구조가 삭제되고 소멸자가 실행되고 CLASS::Ptr 삭제를 시도합니다(그리고 Null임). 고맙습니다. Null이 아니라 쓰레기입니다. Dmitriy Skub 2017.04.25 11:31 #18748 모드이면 좋을텐데 ChartSetInteger ( 0,CHART_SHOW, false ); 거래 작업 (진입/출구)의 화살표가 표시되지 않았습니다. 그들은 거기에서 절대적으로 쓸모가 없습니다. Aleksey Mirlachev 2017.04.25 13:51 #18749 여러분, 질문이 주제에 없습니다. 저는 새내기입니다. 일자리를 주문하고 싶습니다. 지금 잔액이 0입니다. 주제를 열 수 있습니까? 아니면 먼저 계정을 충전해야 합니까? 계좌에서 돈이 막혀서 조금 이해가 안가는데... [삭제] 2017.04.25 14:26 #18750 The service is unavailable. 나는 발레리안 팅크를 위해 떠났습니다 ... ( 1...186818691870187118721873187418751876187718781879188018811882...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
아마도 OnStart() 함수 에서 수동으로 호출하기 때문일 것입니다.
정적 객체의 소멸자는 이 함수 다음에 역순으로 호출됩니다.
아마도 OnStart() 함수 에서 수동으로 호출하기 때문일 것입니다.
정적 객체의 소멸자는 이 함수 다음에 역순으로 호출됩니다.
하지만 누수가 발생하고 있습니다. 개는 어디를 팠습니까?
모든 것이 바로 여기에서 작동해야 하는 것 같습니다.
하지만 누수가 발생하고 있습니다. 개는 어디를 팠습니까?
두 개의 개체를 만들고 하나만 삭제합니다.
CLASS::Tmp 개체가 필요한 이유는 무엇입니까?
두 개의 개체를 만들고 하나만 삭제합니다.
두 개체는 어디에서 생성됩니까?
CLASS::Tmp 개체가 필요한 이유는 무엇입니까?
덕분에 더 이상 필요하지 않습니다. 그러나 언어를 이해하려면 여전히 예제에서 누수가 발생하는 이유를 이해해야 합니다.
숨겨진 생성자가 있는 숨겨진 객체는 어떤 경우에는 논리적입니다(아마도 가장 명백한 것 ).
네, 제가 틀렸습니다. 하나의 개체만 생성되고 삭제되지 않았습니다.
왜냐하면 생성자를 호출할 때
CLASS::Tmp에는 여전히 개체의 주소가 아닌 가비지가 포함되어 있습니다.
2) 새로운 CLASS라는 클래스가 생성됩니다. CLASS() 생성자를 실행하고 CLASS::Ptr이 Null에 할당됩니다.
3) CLASS::Tmp 값이 새 CLASS에 대한 포인터로 업데이트됩니다.
4) PTR<CLASS> CLASS::Ptr 구조가 삭제되고 소멸자가 실행되며 CLASS::Ptr 삭제를 시도합니다(Null).
CLASS::Tmp에는 여전히 개체의 주소가 아닌 가비지가 포함되어 있습니다.
고맙습니다! 어떻게 든 나는이 증거를 보지 못했습니다.
1) 정적 PTR<CLASS> CLASS::Ptr 구조가 생성됩니다.
2) 새로운 CLASS라는 클래스가 생성됩니다. CLASS() 생성자를 실행하고 CLASS::Ptr이 Null에 할당됩니다.
3) CLASS::Tmp 값이 새 CLASS에 대한 포인터로 업데이트됩니다.
4) PTR<CLASS> CLASS::Ptr 구조가 삭제되고 소멸자가 실행되고 CLASS::Ptr 삭제를 시도합니다(그리고 Null임).
고맙습니다. Null이 아니라 쓰레기입니다.
모드이면 좋을텐데
거래 작업 (진입/출구)의 화살표가 표시되지 않았습니다. 그들은 거기에서 절대적으로 쓸모가 없습니다.