MQL5で学び、共に書く - ページ 33

 

初期化を初期化リストに移動する必要があります。

宣言で初期化できるのは静的積分定数のみ(少なくともC++では、MQL5ではまだわかりません :)

 
もう1つ、最後の質問です。文字列の""とNULLが等価でない理由は何ですか?
 
Interesting:

鳥といえば。

そして、これに対してコンパイラはどう答えるのだろうか。そして、次のように答えます。 '=' - 不正な代入の使用

コンパイラは屈しなかった-。 '=' - 不正な代入の使用。

もし、プログラマー(この場合、私)が変数を 使う前に初期化 しなかった場合(コンパイラの要求通りにして、コンストラクタでこの瞬間を省略した場合)、どうなるのでしょうか?


コンストラクタで構造体/クラスのメンバを初期化する正しい方法。

//Struct StrMQL4_Deal
struct StrMQL4_Deal
{
//----------------------------------------------------------------------------//
double TP;
double SL;
//----------------------------------------------------------------------------//
StrMQL4_Deal():TP(0),SL(0) { }
StrMQL4_Deal(double  tp,double  sl):TP(tp),SL(sl) { }
};
 
TheXpert:
もう1つ、最後の質問です。文字列の""とNULLが等価でない理由は何ですか?
NULLは文字列が未割り当てであることを意味し、""は文字列が割り当てられ、値を持つことを意味する。
 
mql5:

コンストラクタで構造体やクラスのメンバを 適切に初期化する。

はい、私は1年以上前にこのことに気づきました。少なくとも2010年からはそうしています。
 
Interesting:
少なくとも2010年以降は、その方法でやっています。

初期化リストが導入されたのはごく最近のことなので、2010年以降に正しく実行することはできなかったはずです :) .

mql5 です。

NULLは文字列が未割り当てであることを意味し、""は文字列が割り当てられ、値を持つことを意味する。

なるほど、言い方を変えると。ユーザーに「配布していない」という文字列の状態を入力することに何の意味があるのでしょうか?何か有用な使い方ができるのか、それともただの松葉づえなのか。
 
TheXpert:
初期化リストが導入されたのは最近なので、2010年からはうまくできなかったのでしょう :) .
は、コンストラクタの中で意味します。
 
TheXpert:

初期化リストが導入されたのはごく最近のことなので、2010年からちゃんとできたわけではないはずです :) .


クラスのコンストラクタと 宣言での初期化という意味です。

//----------------------------------------------------------------------------//
double TP;
double SL;
//----------------------------------------------------------------------------//
正確には覚えていませんが、2010年の初め(第1四半期、正確には言えません;そしてソースを探すのが面倒です)からオブジェクトを扱うようになりました。それ以前は、ライブラリを扱ったり、MQL5の基礎を勉強したり(というか、MQL5の移行問題を扱ったり)していました。
 
Rosh:
配列の中の異なる種類のデータに対してオーバーロード関数を 実行する。
おっとっと、了解です。だから、普遍的な方法はないのです。というのも、オーバーロードの結果、同じ関数でもたった一つ(!)、関数のヘッダで配列の型を指定しなければならないからです。すっきりしないけど、しょうがない、このままにしておこう。リファレンスマニュアルのような出口があることを期待していた。
 

次のような簡単なスクリプトで、奇妙な結果が得られます。

void OnStart()
  {
   for(uchar u=120;u<136;u++)
     {
       switch(u>254)
        {
          case  true: Print(u,">254 - true");  break;
          case false: Print(u,">254 - false"); break;
        }
     }
  }

どなたか、その理由を説明してください。254番を明示的にucharに変換した場合、意図したとおりに動作する。