object_pointer =newClass_Name표현식으로 생성된 모든 객체는 이후에 delete( object_pointer ) 연산자에 의해 파괴되어야 합니다. 어떤 이유로 이러한 변수가 프로그램 종료 시 삭제 연산자에 의해 파괴되지 않은 경우 이에 대한 메시지가 "전문가" 로그에 표시됩니다. 여러 변수를 선언하고 모든 변수에 단일 개체 포인터를 할당할 수 있습니다.
После загрузки на исполнение mql5-программы каждой переменной выделяется память в соответствие с типом переменной. Переменные делятся на два типа по уровню доступа - глобальные переменные и локальные переменные, и по классам памяти: входные параметры mql5-программы, статические и автоматические. Каждая переменная при необходимости...
Все объекты, созданные выражением указатель_объекта= new Имя_Класса, обязательно должны быть впоследствии уничтожены оператором delete (указатель_объекта).
Если по каким то причинам такая переменная по окончании работы программы не была уничтожена оператором delete , то об этом будет выведено сообщение в журнал "Эксперты" .
Можно объявить несколько переменных и всем им присвоить указатель одного объекта.
Если динамически создаваемый объект имеет конструктор, то этот конструктор будет вызван в момент выполнения оператора new . Если объект имеет деструктор,
то деструктор будет вызван в момент выполнения оператора delete .
버그가 아니라 그런 기능을 의미하며 악순환을 일으키게 됩니다. 동적 객체를 삭제하는 프로세스를 자동화하고 싶다면 소멸자가 delete 시에만 호출되므로 소멸자 자체에 삭제 를 넣는 것은 쓸모가 없습니다. 그러나 @A100 이 here 제안한 것처럼 다른 클래스의 다른 인스턴스를 통해 자동화를 구현할 수 있습니다.
감사합니다. 하지만 거기에서 내 질문에 대한 답변을 보지 못했습니다.
A *a= new A일 때 소멸자가 호출되지 않는 이유를 이해할 수 없습니다.
https://www.mql5.com/ru/docs/basis/variables/object_live
object_pointer = new Class_Name 표현식으로 생성된 모든 객체는 이후에 delete( object_pointer ) 연산자에 의해 파괴되어야 합니다 . 어떤 이유로 이러한 변수가 프로그램 종료 시 삭제 연산자에 의해 파괴되지 않은 경우 이에 대한 메시지가 "전문가" 로그에 표시됩니다. 여러 변수를 선언하고 모든 변수에 단일 개체 포인터를 할당할 수 있습니다.
MQL에 OnTimer() 함수 를 확인하도록 요청합니다.
어떤 이유에서인지 MT4용 전략 테스터에서는 작동하지 않지만(오류가 없고 이 기능 내부에서 아무 것도 실행되지 않음) 온라인에서는 모든 것이 정상입니다.
MT5의 경우 이 기능은 테스터와 온라인 모두에서 작동합니다.
고맙습니다!
OnInit에서는 두 개의 숫자만 비교되며 Incorrect 패스는 전체 패스보다 시간이 더 걸립니다! 어때요?
이러한 어드바이저와 같은 완전한 최적화를 위해 출시합니다.
우리는 8명의 에이전트의 작업 결과를 얻습니다.
이제 그런 조언자
마지막으로 그러한
두 가지 결론
두 번째 요점은 분명히 실수입니다. OnInit에서 뛰어 내리는 것보다 제 시간에 빈 실행을 수행하는 것이 더 유리합니다. 때문에 수정하십시오. Incorrect-Init 및 ExpertRemove의 장점은 거의 완전히 상실되었습니다.
조언자/지표/스크립트 및 계정이 있는 즐겨찾기 탭 은 터미널을 종료한 후에만 기억됩니다. 이 때문에 비정상 출력(정전)이 발생하면 이 탭을 재설정합니다. 변경시 저장이 가능한가요?
때로는 즐겨찾기에 폴더를 추가할 수 있다면 매우 편리할 것이라는 분명한 이해가 있습니다.
그런 다음 다음과 같이 시도하십시오.
결과:
1:POINTER_AUTOMATIC
1:POINTER_DYNAMIC
2:POINTER_DYNAMIC
2:POINTER_AUTOMATIC
고맙습니다! 꽤 해결책입니다.
컴파일러가 맹세하지 않는 유일한 방법은 아마도 더 나을 것입니다.
글쎄, 그것은 밝혀졌습니다 - 버그 또는 무엇입니까?
new 를 통해 클래스의 인스턴스를 생성할 때 소멸자를 호출하지 않습니다.
그리고 소멸자를 호출하는 특수 클래스를 만드는 유일한 솔루션은 무엇입니까? 아니면 그것 없이도 여전히 가능합니까?
new 연산자로 생성하고 delete 연산자로 삭제
문제는 소멸자에 삭제 를 넣는 것이지만 new (A *a= new A;)를 통해 클래스의 인스턴스를 만들 때 소멸자가 호출되지 않습니다.
가능하다면 지그재그 표시기에서 고가 및 저가 극단값의 해당 값을 표시하는 방법은 무엇입니까?
형성된 봉우리와 저지대에 안정적인 결합과 근접성을 제공합니까?
OBJ_TEXT 의 예를 참조하십시오.
https://www.mql5.com/ru/docs/basis/variables/object_live
고맙습니다.
예, 이것이 바로 여기에 쓰여진 내용입니다.
버그가 아니라 그런 기능을 의미하며 악순환을 일으키게 됩니다.
동적 객체를 삭제하는 프로세스를 자동화하고 싶다면 소멸자가 delete 시에만 호출되므로 소멸자 자체에 삭제 를 넣는 것은 쓸모가 없습니다.
그러나 @A100 이 here 제안한 것처럼 다른 클래스의 다른 인스턴스를 통해 자동화를 구현할 수 있습니다.
팁 고마워. 이미 zamayalsya는 읽고 시도하고 시도하고 읽으십시오. ZigZag로 작업 예제를 보고 싶습니다...
예를 들어 지그재그로 내 아바타에 있지만 상위 극단의 올바른 바인딩과 함께 모든 것이 하위 극단의 바인딩과 함께 순서대로 있기 때문에!
k=(WindowPriceMax()-WindowPriceMin())/30을 통해 바인딩하는 방법은 창 크기가 크게 변경되어 자체적으로 정당화되지 않으며 다른 것이 필요합니다...
예에서 OBJ_TEXT 및 상단 및 하단 앵커. 링크를 따라 예제를 실행...
버그가 아니라 그런 기능을 의미하며 악순환을 일으키게 됩니다.
할당된 관리되지 않는 리소스에 대한 제어를 해결하는 방법은 스마트 포인터를 사용하는 것이라고 이전에 이미 들었습니다. C++와 완전한 유추.
아마도 문제는 솔루션이 은색 접시에 제시되지 않았다는 것입니다. 글쎄요, 죄송합니다 ...
누구나 "shared_ptr" 사이트 검색에서 점수를 매길 수 있고 첫 번째 결과로 이동할 수 있습니다. 어렵지 않습니다. 시도해 볼 것을 강력히 권장합니다.