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

 
Rashid Umarov:
ここをクリック -プログラム実行

MQL5のプログラムの概要については、以下の表をご覧ください。

プログラム

実行

備考

スクリプト

自分のスレッドで、スクリプトの実行スレッドの数だけ

ループしたスクリプトは、他のプログラムの作業を中断できない

専門家

独自のスレッドで、専門家の数だけ - 彼らのための実行スレッドの数だけ

ループしたエキスパートが他のプログラムの作業を中断させることはない

インジケーター

1つのシンボルに対して、すべてのインジケータを1つの実行スレッドで実行します。イ ンジケータを持つシンボルの数だけ、それらの実行スレッドが存在します。

1つのインジケータが無限ループすると、このシンボルの他のすべてのインジケータが停止します。

ありがとうございます、そういうことです

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

バグ、バグ、質問

スラワ さん 2017.02.06 07:22

しかし、ここでも、M5のDeinitコマンドがM15のInitコマンドより先に処理 されることは保証されない

 
-Aleks-:

残念ながら、私はこのフォーマットにはなじみがありません。

実験では、グラフィカルバッファの中の数値はdoubleと同じルールで表現されることがわかった--つまり、こんな長い数値はグラフィカルバッファに通せないということだ--悔しい。

残念なことに、グラフィカルバッファには10桁の数字しか入らない。

ところで、なぜ小数点以下4桁の制限があるのでしょうか?

 

コンパイルエラー(というかエラーメッセージが 出ない)

class A {
public:
        int i;
};
class B : public A {};
class C : protected A {};
class D : protected B {};
void OnStart()
{
        C c;
        Print( c.i ); //Error: 'i' - protected member access error
        D d;
        Print( d.i ); //нормально???
}
 

実行エラー:EX5の読み込みに失敗

class A;
typedef void (*f)( A*);
class A {
    virtual void g( A *a ) {}
        f ff;
};
void OnStart() { Print( __FUNCTION__ ); }
 

実行中のエラー

class B;
void f( B* );
class A { public:
        virtual ~A() { f((B *)&this ); } //(*)
        virtual void g( A* ) { Print( __FUNCTION__ ); }
};
class B : public A { public:
        virtual void g( A* ) { Print( __FUNCTION__ ); }
};
void f( B *b ) { b.g( b ); }
void OnStart() //(1)
{
        B *b = new B;
        delete b;
}

結果: (*)内のポインタの キャストが正しくない

そして、もし

void OnStart() { B b; } //(2)

result: B::g

が、OnStart(1)と(2)の根本的な違いは何でしょうか?

また、C++で同様のコードを書いた結果:A::g

 

A100: 

上の例のような仮想デストラクタは、何のためにあるのでしょうか?子孫でオーバーライドできますか?

 
fxsaber:

上の例のような仮想デストラクタは、何のためにあるのでしょうか?子孫でオーバーライドできますか?

MQLでは、明示的に指定されていなくても常に仮想です。
 
A100:
MQLでは、明示されていなくても常に仮想である
では、何のためにという質問には答えていないのですね。
 
fxsaber:
では、何のためにという質問には答えていないのですね。
MQLのデストラクタがすべて仮想であるならば、なぜ仮想デストラクタが必要なのかという疑問は、何のためにデストラクタが必要なのかということに帰結します。そして、これはあまりにも一般的な質問です。
 
A100:
もしMQLのデストラクターがすべて仮想であれば、仮想デストラクターは何のためにあるのかという疑問は、デストラクターは何のためにあるのかという疑問に帰結することになる。そして、これはあまりにも一般的な質問です。
デストラクタが何に使われるかは知っている。なぜ、定義の前にバーチャルという言葉を付け加えなければならないのか、私にはよくわかりません。