오류, 버그, 질문 - 페이지 2565

 
Igor Makanu :

나는 논쟁하지 않을 것이다

나는 우리가 논의하고 있는 문제를 설명하기로 결정했습니다. 그런데 MQL의 동작이 C#의 동작과 점점 더 유사해지고 코드가 컴파일되지 않았습니다.

 //+------------------------------------------------------------------+
class A
{
private :
   int                count;
public :
                     A():count( 0 ) {}
   static void        inc()        { count++; }

};

A a;
//+------------------------------------------------------------------+
void OnStart ()
{
   a.inc(); //code generation error 
   A::inc();
   
}
//_______________________________________________________________________

여기에 inc() 메서드가 있습니다. 보호 필드와 함께 작동합니다.

정적 한정자를 추가한 경우 - 컴파일러는 어디에서 검사를 중지해야 합니까? - 가시성 밖의 물체에 대한 진입점이 필요하다고 결정을 내렸습니까?

 
Igor Makanu :

정적 메서드/필드를 작성했거나 ::를 적용한 경우 - 컴파일러에 의존하지 마십시오.

버그가 발생합니다. 저는 이전과 같이 코드를 작성합니다. this, ::, const, static, private, public, protected는 가능한 모든 위치에 배치됩니다.

내 코드를 빠르게 이해하려면 우선 이것이 필요합니다. 두 번째로 - 컴파일러가 작성하는 동안 도움이 되었습니다. 그리고 그는 정말 도움이 됩니다.


어제 처음으로 이런 상황을 접했습니다. 5Kb 코드를 작성했는데 그 중 일부는 다양한 작업에서 복사하여 붙여넣었습니다. 그리고 첫 번째 컴파일에서는 단일 오류나 경고가 없었습니다. 놀란.

 
Igor Makanu :

우리가 논의하고 있는 문제를 설명하기 위해 똑같이 결정했습니다.

 //+------------------------------------------------------------------+
class A
{
private :
   int                count;
public :
                     A():count( 0 ) {}
   static void        inc()        { count++; } // Здесь ошибка, о которой компилятор сейчас не сообщает.

};
 
Igor Makanu :

나는 우리가 논의하고 있는 문제를 설명하기로 결정했습니다. 그런데 MQL의 동작이 C#의 동작과 점점 더 유사해지고 코드가 컴파일되지 않았습니다.

여기에 inc() 메서드가 있습니다. 보호 필드와 함께 작동합니다.

정적 한정자를 추가한 경우 - 컴파일러는 어디에서 검사를 중지해야 합니까? - 가시성 밖의 물체에 대한 진입점이 필요하다고 결정을 내렸습니까?

귀하의 카운트 변수는 정적이 아닙니다.

정적 함수는 이 변수가 속한 개체를 어떻게 알 수 있습니까?

 
Koldun Zloy :

귀하의 카운트 변수는 정적이 아닙니다.

정적 함수는 이 변수가 속한 개체를 어떻게 알 수 있습니까?

그것은 중요하지 않습니다. 나는 일반적으로 정적 메서드로 작업하는 모든 구현이 컴파일러에서 완전한 확인을 받지 않으며 제어에 대한 책임은 프로그래머에게 있다는 사실에 대해 이야기하고 있습니다.

그래, 상관없으니까 가자 - 같은 걸 하루에 2번 썼다 https://www.mql5.com/en/forum/1111/page2564#comment_13249284

 
Igor Makanu :

나는 일반적으로 정적 메서드로 작업하는 모든 구현이 컴파일러에서 전체 검사를 받지 않으며 제어에 대한 모든 책임은 프로그래머에게 있다는 사실에 대해 이야기하고 있습니다.

이거 어디서 읽었어?

스스로 생각해 내고 멈추지 않고 반복 했습니까?

 
Andrey Barinov :

이거 어디서 읽었어?

스스로 생각해 내고 멈추지 않고 반복 했습니까?

나는 그것을 생각해 낸 것이 아닙니다. 이것은 내 의견입니다 ... 원칙적으로 C #에서와 같이 정적 내에서만 정적 작업으로 모든 작업을 닫으십시오. 그러면 질문이나 오류가 없을 것입니다.)

 
Slava :

플랫폼에 대한 몇 가지 질문:

1. MOEX(예: EURRUB_TOM)를 통해 VP에 대해 허용되는 거래 범위가 추가됩니까? 이제 한도가 설정되는지 여부를 확실히 알 수 없기 때문입니다. 범위에 대한 액세스 권한이 없습니다(최대 및 최소 가능한 가격). 추가하십시오.

2. 터미널과 메타에디터에 N분마다 자동저장 상태를 추가할 수 있나요? 많이 부족하다, tk. 갑자기 연결이 끊긴 경우 모든 변경 사항이 손실된 상태로 프로그램이 시작된 시점으로 돌아갑니다! 매우 짜증나!

 

MQ 여러분, 스토리지는 괜찮습니까? 한 파일에 10-20초를 커밋합니다. 예전에는 모든게...

추가됨: 때때로 커밋이 중단됩니다...

 
사용자 지정 상품이 있는 차트의 표시기에서 CopyBuffer 함수 (예: EURUSD의 경우 실제 기호에 대한 일반 매쉬 핸들 사용)를 호출하면 오류 4806이 반환됩니다. 사용자 지정 기호는 공식 XAUUSD/31.1035*에 따라 작성됩니다. USDRUB. 라이브 차트(예: XAUUSD, GBPUSD 등)에서는 동일한 설정의 동일한 사용자 지정 표시기가 제대로 작동합니다. 무엇이 문제가 될 수 있습니까?
사유: