Хочется закончить свою песнь важными словами. Любые описанные механизмы, принципы и паттерны, как и ООП в целом не стоит применять там, где это бессмысленно или может навредить. Это ведет к появлению статей со странными заголовками типа «Наследование — причина преждевременного старения» или «Синглтон может приводить к онкологическим заболеваниям».
내 예에서 내가 :
onTick() 메서드에서 Ask,bid 값을 복사하고 다른 메서드(가상 거래)에서 _Ask, _Bid를 사용합니다.
전역 변수로 작업하는 것과 같을까요?
추신: 물론 옵션으로 모든 방법을 참조하여 &tick을 전달할 수 있지만 다시 한 번 더 효율적인 방법에 대한 질문이 있습니다.
여하튼 나는 클래스에서 변수를 초기화 하는 두 가지 방법에 대해 질문했습니다. 여기 하나가 있습니다:
그리고 이것:
두 번째 방법의 장점이 무엇인지 물어보니 정적 멤버를 초기화할 수 있다는 답변을 받았습니다. 그러나 정적 멤버만 이러한 방식으로 초기화되지 않습니다.
따라서 질문은 여전히 동일합니다. 모든 사람에게 근본적인 차이점이 있으며 두 번째 방법의 이점은 무엇입니까?
인용문
여하튼 나는 클래스에서 변수를 초기화 하는 두 가지 방법에 대해 질문했습니다. 여기 하나가 있습니다:
https://www.mql5.com/en/forum/85652/page45#comment_15975127
두 번째 방법의 장점이 무엇인지 물어보니 정적 멤버를 초기화할 수 있다는 답변을 받았습니다. 그러나 정적 멤버만 이러한 방식으로 초기화되지 않습니다.
정적 이 아니라 상수 필드
따라서 질문은 여전히 동일합니다. 모든 사람에게 근본적인 차이점이 있으며 두 번째 방법의 이점은 무엇입니까?
"나쁜 형식으로 간주됩니다"라는 문장을 버리면 더 편리한 것은 IMHO를 사용하는 것입니다.
apnu 주제 다시, 마지막 메시지는 내가 스스로 알아낸 것 같아 삭제 ....
이 코드가 있습니다:
이 데이터를 비트 단위로 저장할 하나의 int를 사용하여 CSetting의 privat 섹션에서 3개의 열거형과 2개의 int를 채우고 싶습니다. 코드를 스케치했습니다.
이론적으로 이것은 작동해야 합니다. enum 에 대한 데이터에서 하위 2 + 3 +3 비트를 가져오고 int의 나머지 24비트를 사용하여 상위 12번째 비트에서 숫자의 부호를 유지하면서 param1 및 param2를 채웁니다.
오류가 있는지 어떻게 확인할 수 있습니까? )))
글쎄, 또는 이 데이터를 int에 저장하는 방법에 대해 다른 사람의 옵션 에 감사드립니다.
오류가 있는지 어떻게 확인할 수 있습니까? )))
다음과 같이 할 수도 있습니다. t + d * 10 + v * 100
작동하지 않습니다
비트 단위로 이동하거나 2로 곱하거나 나누어야 합니다. 이는 이동과 동일합니다.
글쎄, 평소와 같이 - 나는 짐을 꾸리고, 풀고, 신원을 확인했습니다. 모든 엣지 케이스를 테스트하는 것이 바람직합니다.
그래서 예 ... 논리적
하지만 패킹을 할 계획은 없었습니다 - 옵티마이저를 위해 입력 변수의 수를 줄이고 GA가 빨리 수렴하지 않도록 그 위에 그레이 코드를 씁니다 - 많은 GA 패스가 필요합니다
이미 경계 사례를 확인했지만 경험상 .... 버그가 너무 교활합니다 !!! )))
추신: 물론 주기를 0 ... MAX_UINT에서 파일로 재설정하고 시각적으로 볼 수 있지만 최상의 옵션인 IMHO는 아닙니다.
작동하지 않습니다
...
왜 갑자기 작동하지 않습니까? 세 개의 열거, 10보다 큰 것은 없습니다. 초등학교 2학년 산수.