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

 
coderex :

누군가가 관심을 가질 수 있습니다. 대답은 서비스 데스크입니다.

На данный момент оператор *(dereference/indirection) можно использовать только для указателей на объекты классов и это rvalue

그것은 나에게 매우 흥미 롭습니다! Service Desk의 답변을 예를 들어 설명해 주십시오.

& == GetPointer(). * - 아무것도 바뀌지 않았다.

 
fxsaber :

그것은 나에게 매우 흥미 롭습니다! Service Desk의 답변을 예를 들어 설명해 주십시오.

& == GetPointer(). * - 아무것도 바뀌지 않았다.

어떤 예가 필요합니까?
 
coderex :

누군가가 관심을 가질 수 있습니다. 대답은 서비스 데스크입니다.

На данный момент оператор *(dereference/indirection) можно использовать только для указателей на объекты классов и это rvalue
그건 그렇고, 다른 날 나는 그들에게 모든 데이터 유형 에 대한 포인터 도입에 대한 제안을 보냈습니다. 그리고 이 말도 안되는 제한은 이미 충분합니다.
 
Alexey Navoykov :
그건 그렇고, 다른 날 나는 그들에게 모든 데이터 유형 에 대한 포인터 도입에 대한 제안을 보냈습니다. 그리고 이 말도 안되는 제한은 이미 충분합니다.
* 연산자의 오버로드를 도입하는 것이 좋을 것입니다. 그렇지 않으면 그것 없이는 STL로 ID를 구현하는 것이 불가능합니다. 또한 calback뿐만 아니라 전체 형식 정의를 도입하는 것도 좋을 것입니다.
 
coderex :
* 연산자의 오버로드를 도입하는 것이 좋을 것입니다. 그렇지 않으면 그것 없이는 STL로 ID를 구현하는 것이 불가능합니다. 또한 calback뿐만 아니라 전체 형식 정의를 도입하는 것도 좋을 것입니다.
그래, 난 동의. 모든 것이 미완성 상태입니다. 그리고 오버로드 측면에서 저는 캐스트 연산자에 더 관심이 있습니다. 캐스트 연산자가 없으면 일반적으로 어렵습니다.
 
coderex :
어떤 예가 필요합니까?
* 및 &에서 원하는 것. 단순하지만 시각적인 것. 편리함을 보기 위해.
 
fxsaber :
* 및 &에서 원하는 것. 단순하지만 시각적인 것. 편리함을 보기 위해.

내가 원하는 것은 이미 위에 썼습니다.

GetPointer(...)를 사용 하는 '&' 연산자가 있는 예를 직접 생각할 수 있습니다. 이것은 본질적으로 짧은 형식입니다.

'*' 연산자가 있는 예 - 이해에 도움이 될지 안 될지 모르겠습니다.

class Iterator
  {
   int m_value;
public :
   Iterator( const int val) : m_value(val) { }
   int operator *() { return m_value; }
  };

int main( int argc, char **argv) {
   Iterator *_it = new Iterator( 5 );
  
   int _val = **_it;
//---
   return 0 ;
}


이것은 C++에서 작동하지만 MQL에서는 m_value를 얻으려면 getter를 만들어야 합니다.

 

OBJ_CHART ChartRedraw(MainChartID)가 다시 그리기에 적합하지 않음을 도움말에 추가합니다. ChartRedraw(ObjChartID)가 필요합니다.

따라서 도움말의 예제가 올바르지 않습니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_CHART
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_CHART
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_CHART - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

스케일을 N <= 5(막대 아래 영역의 크기 = 2^N)로 제한하지 마십시오.

이것은 틱 기록을 더 자세히 볼 수 있도록 하기 위해 필요하고 편리합니다.

 
설명 해주십시오. 스크립트
class A
{
public :
   const int a;
  
  A( int c = 0 ) : a(c) {}
  
   virtual int f()
  {
     Print ( __FUNCTION__ );
    
     return ( this .a);
  }
};

class B : public A
{
public :
   const int b;
  
  B( int c = 0 ) : A(c), b( this .f()){}

   virtual int f()
  {
     Print ( __FUNCTION__ );
    
     return ( this .a);
  }
};


void OnStart ()
{
  B b;  
  A* a = new B;
  
   delete a;
}

결과

2016.10 . 18 09 : 35 : 01.981 Test14 (GBPUSD,M1)      B::f
2016.10 . 18 09 : 35 : 01.981 Test14 (GBPUSD,M1)      B::f

A::f가 아닌 B::F를 반환하는 이유는 무엇입니까? 스크립트는 f에 대한 호출이 생성자 본문 실행 전에 발생하는 방식으로 작성되었습니다(굵게 강조 표시됨). 그러나 이 시점 에서 기본 클래스 A의 생성자 가 이미 호출되었으므로 this.f()는 기본 클래스를 구체적으로 참조해야 하며 B 생성자는 아직 실행되지 않았습니다. 추리/안식의 오류가 무엇인지 설명 부탁드립니다.