エラー、バグ、質問 - ページ 1741

 
typenameはコンパイル時に文字列を生成するので、「尾を引く」必要があるわけです。


ポインターでオブジェクトの 実際の型を取得したいのか?

関数のようなもの。

string GetPointerTypename(void *ptr);
 
Ilyas:
typenameはコンパイル時に文字列を生成するため、「尾を引く」必要があるのです。


ポインターで実際のオブジェクトの型を 取得しますか?

関数のようなもの。

string GetPointerTypename(void *ptr);

はい、これです

スタニスラフ・コロツキー
もっと繊細に作りたいですね。でも、どうやって?MQLではvirtual baseメソッドのtypename(this)ベースクラスを返しますC++のtypeid(*this).name()base virtualメソッドでは、実際のオブジェクトクラスを返します

 
fxsaber:
Profile Publicationsだけの機能なのでしょうか?
今日の午後には直りました。今、それが再び起こっている。
 

なかなかまとまりませんね。

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

返り値のaと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_idのチャートで起動したExpert Advisorの名前

チャートスクリプト名

指定された 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秒後には取り外して出てきた。リリース版のみ再現。デバッグ中はすべて正常です。

ご自身でご確認ください。スクリプトモードでは、再生がうまくいかなかった。EAのみです。