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

 
typename은 컴파일 타임에 문자열을 생성하므로 "pull tails"가 필요합니다.


포인터 로 객체의 실제 유형 을 얻으시겠습니까?

함수와 같은 것:

string GetPointerTypename( void *ptr);
 
Ilyas :
typename은 컴파일 타임에 문자열을 생성하므로 "pull tails"가 필요합니다.


포인터 로 객체의 실제 유형 을 얻으시겠습니까?

함수와 같은 것:

string GetPointerTypename( void *ptr);

네. 여기

스타니슬라프 코로트키 :
더 멋지게 만들고 싶습니다. 하지만 어떻게? MQL 에서 가상 기본 메서드의 typename(this) 은 기본 클래스를 반환합니다. 여기 C++ 에서 기본 가상 메서드의 typeid(*this).name() 은 객체의 실제 클래스를 반환합니다.

 
fxsaber :
기능 간행물에만 있습니까?
그들은 낮에 그것을 고쳤습니다. 그리고 이제 기능이 다시 생겼습니다.
 

내가 이해할 수 없는 것

int a= 1 ; //a1
int b= 2 ; //b1
int aa( int a, int b)
{
return (a+a+b+b);
}

반환되는 b 및 b 중 하나는 외부 //a1 및 //b1이어야 합니다. 이를 통해 가지 않습니다.

 
Yuriy Asaulenko :

a + ::a + b + ::b

그러나 일반적으로 그러한 연습을 위해서는 손을 때릴 필요가 있습니다.

 
Комбинатор :

a + ::a + b + ::b

그러나 일반적으로 그러한 연습을 위해서는 손을 때릴 필요가 있습니다.

감사합니다.) C++에 대한 책이 없습니다. 그러나 시각적으로 기억합니다. 거기에는 이런 식이었습니다. 아마 잊었을 것입니다. 이전에는 이러한 목적으로 사용된 적이 없습니다. 자, 이제 모든 곳에서 변수를 변경하십시오. 기다리십시오.

일반적으로 이를 위해 설계되었습니다. 그래서 - 옳지 않습니다. 남용해서는 안됩니다.

 

OBJ_CHART 그래픽 개체를 마우스로 드래그( CHARTEVENT_OBJECT_DRAG )하면 OBJ_CHART의 현재 표시 간격이 재설정됩니다.

다음 빌드에서 이 재설정을 제거하세요.

 

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

오류, 버그, 질문

일리아스 , 2016.10.18 09:24

본문에 초기화 목록을 포함하지 않는 이유는 무엇입니까? 비유적으로 말해서 클래스 객체 ( this 포함)는 ':' 기호로 초기화됩니다.
그렇다면 왜 그렇습니까?
class A
{
   const int a;
  
   A() : this .a( 0 ) {} // 'this' - struct member undefined && '.' - member(s) initialization expected
//  A() : a(this.a) {} // no problem
};
 

식별자

설명

속성 유형

CHART_COMMENT

차트의 댓글 텍스트

CHART_EXPERT_NAME

지정된 chart_id로 차트에서 시작된 Expert Advisor의 이름

CHART_SCRIPT_NAME

지정된 chart_id를 사용하여 차트에서 실행 중인 스크립트의 이름

도움말에서 굵게 읽기 전용을 추가합니다.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

현지화에 많은 시간을 할애했습니다. 조언자

class CHARTOBJECT
{
public :
   const string Name;
   const long Chart;

   int GetSubWindow( void ) const
  {
     const ulong StartTime = GetMicrosecondCount ();
    
     const int Res = ObjectFind ( this .Chart, this .Name);
    
     Print (( string )( GetMicrosecondCount () - StartTime) + " mcs." );

     return (Res);
  }

  CHARTOBJECT( const ENUM_OBJECT object_type, const long chart_id = 0   ) :
               Name(( string ) MathRand ()), Chart(chart_id)
  {
     ObjectCreate ( this .Chart, this .Name, object_type, 0 , 0 , 0 );
  }

  ~CHARTOBJECT( void )
  {
     if ( this .GetSubWindow() != - 1 )
       ObjectDelete ( this .Chart, this .Name);
  }
  
   long GetProperty( const ENUM_OBJECT_PROPERTY_INTEGER Property, const int Modifier = 0 ) const
  {
     return ( ObjectGetInteger ( this .Chart, this .Name, Property, Modifier));
  }
};

CHARTOBJECT Chart( OBJ_CHART );
CHARTOBJECT* Bitmap;

void OnInit ()
{
  Bitmap = new CHARTOBJECT( OBJ_BITMAP_LABEL , Chart.GetProperty( OBJPROP_CHART_ID ));
}

void OnDeinit ( const int Reason )
{
  Bitmap.GetSubWindow();
  
   delete Bitmap;
}

차트에서 제거하면 로그에 출력됩니다.

2016.10 . 22 19 : 35 : 51.362 Test9 (AUDCAD,M1)       Abnormal termination
2016.10 . 22 19 : 35 : 48.351 Test9 (AUDCAD,M1)       3005619 mcs.

3초 동안 그는 은퇴하고 날아갔다. 릴리스 버전에서만 재현됩니다. 디버깅할 때 모든 것이 정상입니다.

직접 확인하십시오. 스크립트 모드에서 재생할 수 없습니다. 고문 전용.