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

 
Igor Makanu:

議論するつもりはない

議論している問題を記述することにしました。 ちなみに、MQLの動作はC#と似てきており、コードがコンパイルされない

//+------------------------------------------------------------------+
class A
{
private:
   int               count;
public:
                     A():count(0) {}
   static void       inc()        { count++; }

};

A a;
//+------------------------------------------------------------------+
void OnStart()
{
   a.inc(); //code generation error 
   A::inc();
   
}
//_______________________________________________________________________

Inc()メソッドを実装しました - protectedフィールドでも動作します

staticモディファイアを追加した場合、コンパイラはどこでチェックを止めるべきでしょうか?

 
Igor Makanu:

静的メソッド/フィールドを書いたり、:: を適用した場合、コンパイラに依存してはいけません。

バグは起こるものです。今まで通り、this, ::, const, static, private, public, protectedを可能な限り入れてコードを書いています。

まず、自分のコードを素早く理解するために必要です。第二に、コードを書くときにコンパイラに助けてもらいたい。とても助かっています。


昨日、初めてそんな場面に直面しました。私は5Kbのコードを書きましたが、その一部は様々な断片からコピー&ペーストしたものです。そして、初めてコンパイルしたときにも、エラーや警告は一つも出なかった。驚きました。

 
Igor Makanu:

議論している問題を記述することにした

//+------------------------------------------------------------------+
class A
{
private:
   int               count;
public:
                     A():count(0) {}
   static void       inc()        { count++; } // Здесь ошибка, о которой компилятор сейчас не сообщает.

};
削除済み  
Igor Makanu:

議論している問題を記述することにしました。 ところで、MQLの動作はますますC#に似てきて、コードがコンパイルされない

inc() メソッド - protected フィールドで動作します。

staticモディファイアを追加した場合、コンパイラはどこでチェックを止めるべきでしょうか

count変数は静的ではありません。

スタティック関数は、この変数がどのオブジェクトに属しているかをどのように知ることができますか?

 
Koldun Zloy:

変数数は静的ではありません。

スタティック関数は、この変数がどのオブジェクトに属しているかをどのように知ることができるのでしょうか?

原則ではなく、静的メソッドを扱う実装では、コンパイラによる完全なチェックは行われず、制御の全責任はプログラマにある、という意味です。

OK、気にしないで、だって関係ないもの - 一日に二度も同じことを書いてしまったhttps://www.mql5.com/ru/forum/1111/page2564#comment_13249284

 
Igor Makanu:

つまり、静的メソッドの実装は、コンパイラによって完全に検証されることはなく、制御の責任はすべてプログラマにあるのです

どこで読んだんだ?

自分で考案して、それを止めずに繰り返したのですか?

 
Andrey Barinov:

どこでそれを読んだんだ?

自分で作って、それを繰り返しているのですか?

私が考え出したわけではなく、私の意見ですが...。原則的には、C#のように静的な作業をすべて静的な作業だけで終わらせたいのですが、そうすれば質問もエラーもなくなります ;)

削除済み  
Slava:

プラットフォームについて、いくつか質問します。

1. MOEX経由のVPの許容取引範囲(例:EURRUB_TOM)は追加されるのでしょうか?現時点では、範囲(最大値と最小値の可能性)にアクセスできないため、制限が設定されるかどうかを確実に知ることはできません。追加してください。

2.ターミナルとメタエディタに、N分ごとに自動保存するステータスを追加することは可能ですか?突然の切断でプログラム開始時の状態に戻り、すべての変更が失われるため、非常に不足しています。非常にストレスがたまる

削除済み  

MQさん、皆さんはストレージは大丈夫ですか?ファイルのコミットには10〜20秒かかる。昔は瞬殺だったのに...。

追記:コミットがハングアップすることがあるのですが...。

 
カスタムツールでチャート上のインジケータで、CopyBuffer関数(EURUSDなどの実シンボル用の通常のマスクのハンドルで)を呼び出すと、エラー4806が返されます。カスタムシンボルは、XAUUSD/31.1035*USDRUBの計算式に基づき算出されます。同じ設定のカスタムインジケーターは、実際のチャート(XAUUSDやGBPUSDなど)でも問題なく動作します。何が問題なのでしょうか?