エラー、バグ、質問 - ページ 1889 1...188218831884188518861887188818891890189118921893189418951896...3185 新しいコメント 削除済み 2017.05.12 17:03 #18881 これはバグですか、それとも何か見逃していますか? 通常のパラボリックEAは、スプレッドを考慮した買いの場合、前のポイントにストップオーダーを出します。 そして今、価格(Ask)は注文価格57781に達したが、注文は開かれていない。 fxsaber 2017.05.12 21:27 #18882 を実行することの間違いとは?class CLASS1 { public: int i; }; class CLASS2 : public CLASS1 {}; void OnStart() { CLASS1 Object; CLASS2* Ptr = dynamic_cast<CLASS2*>(&Object); Ptr.i = 1; } Konstantin 2017.05.13 04:49 #18883 fxsaber:ランタイムエラーとはこのようにすればclass CLASS1 { public: int i; }; class CLASS2 : public CLASS1 {}; void OnStart() { CLASS2 Object; CLASS1* Ptr = dynamic_cast<CLASS1*>(&Object); Ptr.i = 1; }言語構造に大きな変化があり、派生した型は間違いなく祖先の型ではありません。C++で確認しました。class CLASS1 { public: int i; }; class CLASS2 : public CLASS1 {}; void OnStart() { CLASS1* Object = new CLASS1(); CLASS2* Ptr = (CLASS2 *)&Object; Ptr->i = 1; }親クラスから派生クラスへのオブジェクトのキャストは正しく処理されます。つまり、そのように設計されていない限り、MQL5の型キャストに関するメカニズムにエラーがあります。 Koldun Zloy 2017.05.13 06:02 #18884 fxsaber:実行エラーは 何ですかdynamic_castが何を返すか確認しないと、使う意味がない。 fxsaber 2017.05.13 06:06 #18885 Konstantin:とすると言語構造に非常に大きな変化が起こり、派生した型が祖先の型でないことが明確になったのです。 MQLでは、parental castingはdynamic_castなしでも常に動作しています - 古典的に。もしかしたら、dynamic_castの意味を理解していないのかもしれません。ドキュメントにある例の意味が、おそらく理解できないのです。誰か説明してください。 fxsaber 2017.05.13 06:14 #18886 Koldun Zloy:dynamic_castが何を返すか確認しなければ、使う意味がない。ありがとうございます。私の例では、NULLを返します。なぜ、このようなことが起こるのでしょうか。このトリックを使った実用例を教えてください。開発者は以下のようにGraphic.mqhの中だけで使用します。 curve=dynamic_cast<CCurve*>(m_arr_curves.At(i)); if(CheckPointer(curve)!=POINTER_DYNAMIC) return(false);同時に、次のようなクラスやオブジェクトの定義もある。class CCurve : public CObject CObject *At(const int index) const;つまり、親ポインタを子ポインタに渡すのである。まあ、私の例で言えば、まさにその通りなんですけどねどこに引っ掛かりがあるのか? Koldun Zloy 2017.05.13 06:29 #18887 親クラスへのポインタは、実際には子孫クラスへのポインタを含むことができます。class Class1 { }; class Class2 : public Class1 { }; Class1* a = new Class2(); Class2* b = dynamic_cast< Class2* >( a ); // b != NULL fxsaber 2017.05.13 06:35 #18888 Koldun Zloy:親クラスへのポインタは、実際には子孫クラスへのポインタを含むことができます。 ありがとうございます、了解です Konstantin 2017.05.13 08:47 #18889 fxsaber: ありがとうございます。MQLではポインターを子孫クラスのポインター型にキャストできないのに、C++では可能な理由がまだ理解できません。MQLのバグなのか、そうあるべきなのか、説明してください。 TheXpert 2017.05.13 15:01 #18890 Konstantin:はC++で可能なのか、MQLのバグなのか、そうあるべきなのか、説明してください。 C++では、ベースクラスへのポインタが子孫を指す場合のみ可能です。 1...188218831884188518861887188818891890189118921893189418951896...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これはバグですか、それとも何か見逃していますか? 通常のパラボリックEAは、スプレッドを考慮した買いの場合、前のポイントにストップオーダーを出します。
そして今、価格(Ask)は注文価格57781に達したが、注文は開かれていない。
ランタイムエラーとは
このようにすれば
言語構造に大きな変化があり、派生した型は間違いなく祖先の型ではありません。
C++で確認しました。
親クラスから派生クラスへのオブジェクトのキャストは正しく処理されます。つまり、そのように設計されていない限り、MQL5の型キャストに関するメカニズムにエラーがあります。
実行エラーは 何ですか
dynamic_castが何を返すか確認しないと、使う意味がない。
とすると
言語構造に非常に大きな変化が起こり、派生した型が祖先の型でないことが明確になったのです。
dynamic_castが何を返すか確認しなければ、使う意味がない。
ありがとうございます。私の例では、NULLを返します。なぜ、このようなことが起こるのでしょうか。
このトリックを使った実用例を教えてください。
開発者は以下のようにGraphic.mqhの中だけで使用します。
同時に、次のようなクラスやオブジェクトの定義もある。
つまり、親ポインタを子ポインタに渡すのである。まあ、私の例で言えば、まさにその通りなんですけどねどこに引っ掛かりがあるのか?
親クラスへのポインタは、実際には子孫クラスへのポインタを含むことができます。
親クラスへのポインタは、実際には子孫クラスへのポインタを含むことができます。
ありがとうございます。
MQLではポインターを子孫クラスのポインター型にキャストできないのに、C++では可能な理由がまだ理解できません。MQLのバグなのか、そうあるべきなのか、説明してください。
はC++で可能なのか、MQLのバグなのか、そうあるべきなのか、説明してください。