mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 212

 
A100 # :

private 을 선언하여 발에 총을 쏘고 있습니다. 자신에 대한 액세스를 제한했는데 외부 기능에 공개 액세스가 필요한 코드가 갑자기 작동을 멈춘 이유가 궁금할 것입니다.

모든 것이 잘 작동하며 계속 작동할 것입니다. 비공개를 사용하지 마십시오.

 
fxsaber # :

모든 것이 잘 작동하며 계속 작동할 것입니다. 비공개를 사용하지 마십시오.

당신은 자신과 모순됩니다 - 당신은 간단한 구조에 대해 쓰고 개인은 양립할 수 없는 것들입니다

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

mql5 언어의 특징, 미묘함 및 작업 방법

fxsaber , 2021.11.17 07:53

이 두 함수를 비교하면 FileReadStruct 는 간단한 구조에서만 작동합니다 . 이것이 근본적인 차이점입니다.

Wikipedia조차도 그것에 대해 알고 있습니다. 간단한 데이터 구조   ( eng. 평범한 오래된 데이터 ,   POD ) - 현대에서   고급 프로그래밍 언어   액세스 제한 및 자동   관리 .
 
A100 # :

당신은 자신과 모순됩니다 - 당신은 간단한 구조에 대해 쓰고 개인은 양립할 수 없는 것들입니다

Wikipedia조차도 그것에 대해 알고 있습니다. 간단한 데이터 구조   ( eng. 평범한 오래된 데이터 ,   POD ) - 현대에서   고급 프로그래밍 언어   액세스 제한 및 자동   관리 .

용어를 읽지 않고도 맥락이 명확했습니다. 단순 - 모든 중첩 수준에 문자열, 동적 배열 및 클래스 개체가 없습니다.

이 정의에서 소수는 항상 공용체 필드가 될 수 있습니다.

 struct MqlTick2 : private MqlTick {};

union UNION
{
  MqlTick2 Tick;
   uchar Bytes[ sizeof (MqlTick2)];
};

void OnStart ()
{
  UNION u;
  
   ArrayInitialize (u.Bytes, 0 ); // обнулили u.Tick
}
private은 외부에서 불변성을 보장하지 않습니다. 그리고 이것은 좋습니다.
 
fxsaber # :

용어를 읽지 않고도 맥락이 명확했습니다. 단순 - 모든 중첩 수준에 문자열, 동적 배열 및 클래스 개체가 없습니다.

이 정의에서 소수는 항상 공용체 필드가 될 수 있습니다.

private은 외부에서 불변성 을 보장하지 않습니다. 그리고 이것은 좋습니다.

이미 초등학교에 대해 혼란스러워하기 시작했습니다. 불변성은 const가 아니라 private입니다.

 
A100 # :

이미 초등학교에 대해 혼란스러워하기 시작했습니다. 불변성은 const가 아니라 private입니다.

무슨 말인지 이해하지 못했을 뿐입니다. 아마 제가 설명을 잘못하고 있는 것 같습니다. 더 이상 중요하지 않습니다.

 
fxsaber # :

모든 것이 잘 작동하며 계속 작동할 것입니다. 비공개를 사용하지 마십시오.

ZeroMemory 대신 {}를 사용하면 완벽하게 작동할 수 없습니다. 특정 예 를 통해 이것을 보여 드렸습니다. 제로화가 발생하지 않습니다(하지만 여전히 반대라고 생각할 수 있음)

 
A100 # :

ZeroMemory 대신 {}를 사용하면 완벽하게 작동할 수 없습니다. 저는 이것을 특정 예시 로 보여 드렸습니다.

무엇을, 어디서, 왜 사용하는지 완벽하게 이해합니다. 기능이 언급되었습니다. 취향을 논하고 싶은 마음은 없었다.

 
fxsaber # :

무엇을, 어디서, 왜 사용하는지 완벽하게 이해합니다. 기능이 음성 되었습니다. 취향을 논하고 싶은 마음은 없었다.

따라서 사용하지 말아야 하는 이유가 표명되었습니다.

 
A100 # :

ZeroMemory 대신 {}를 사용하면 완벽하게 작동할 수 없습니다. 특정 예 를 통해 이것을 보여 드렸습니다. 제로화가 발생하지 않습니다(하지만 여전히 반대라고 생각할 수 있음)

Union의 경우 첫 번째 멤버만 초기화하고 필드를 바꾸면 테스트가 통과합니다.
대부분의 사용자가 기대하는 대로 동작하도록 속도를 희생하면서 동작을 변경할 가치가 있는지 생각해 봅시다.


파일... 기능은 프라이버시와 불변성이 없을 때 나타났지만 지금까지는 이 동작을 변경할 생각을 하지 않았습니다. 우리는 그것을 중요하다고 생각하지 않습니다.

 
Ilyas # :

파일... 기능은 프라이버시와 불변성이 없을 때 나타났지만 지금까지는 이 동작 을 변경할 생각을 하지 않았습니다. 우리는 그것을 중요하다고 생각하지 않습니다.

그리고 기존 기능의 동작을 변경할 필요가 없습니다. 새로운 올바른 기능(일부 접두사/접미사 포함)을 추가 하고 해당 경고가 발생하여 이전 기능이 더 이상 사용되지 않음을 선언하기만 하면 됩니다.