記事"MQL5でのオブジェクト作成と削除の順番"についてのディスカッション - ページ 2

 

شكرا جزيلا

 

m_array[]はGetPointer(arrray[i])関数からコピーされたので、POINTER_AUTOMATIC 型になります。

54行目は必要ありません:

 if(CheckPointer(m_array[i])==POINTER_DYNAMIC) delete(m_array[i]);

なぜならMQL5がPOINTER_AUTOMATICを削除してくれるからです。

 

こんにちは、


この部分が理解できません:

//--- execute==falseの 場合、このブロックは実行されない。
   if(execute)
     {
      CObjectB objB;
     }
//--- execute==falseの 場合、このブロックが実行される。
   if(!execute)
     {
      CObjectC objC;
     }

コードの最初にexecute = falseとあります。executeはfalseに等しい。

最初のIF: executeがtrueの場合、ブロックは実行されるはずです。しかしコメントには、もしtrueなら実行せず、次のブロックに進むと書かれている。

番目のIF:executeがFALSEの場合、ブロックは実行される。しかし、コメントには、Trueならブロックは実行されると 書かれている。

私は、!- は否定記号だと思い込んでいた。

私の推論のどこに誤りがあるのでしょうか?

 
kashi_ann:

こんにちは、


このプロットを理解することができません:

コードの最初にexecute = falseと設定されています。executeはfalseに等しい。

最初のIF:executeがtrueの場合、ブロックは実行されるはずである。しかしコメントには、もしtrueなら実行せず、次のブロックに進むと書かれている。

2番目のIF:executeがFALSEの場合、ブロックは実行される。しかし、コメントには、Trueならブロックは実行されると書かれて いる。

私は、!- は否定記号だ。

私の推論のどこに誤りがあるのでしょうか?

あなたの誤った判断を強調しました。参考までに、「false」は「偽」、「true」は「真」です。

そして、より明確にするためにコメントを加えた:

//--- execute==falseの場合、このブロックは実行されない。
//--- execute==trueの場合、このブロックが実行される。
   if(execute)
     {
      CObjectB objB;
     }
//--- execute==falseの場合、このブロックが実行される。
//--- execute==trueの場合、このブロックは実行されない。
   if(!execute)
     {
      CObjectC objC;
     }
 
Vladimir Karputov:

あなたの誤った判断は色で強調表示されます。参考:「false」は「偽」、「true」は「真」。

そして、より分かりやすくするためにコメントを加えた:

つまり次のエントリーは...

if(execute = true) и if(execute) - тожественны?
if(execute = false) и if(!execute) - тоже?

ということですね?

 
kashi_ann:

オーケー。次のようなメモがある。

そうだろう?

基本中の基本だ。

 
Artyom Trishkin:

基本中の基本だ。

ありがとうございます)基本が一番大切です。)

怠けずに答えてくれてありがとう)
 
kashi_ann:

オーケー。次のようなメモがある。

そうだろう?

たまたまそうだったのですが、あなたは明らかに==ではなく、==を使いたかったのですね。

 
Andrey Khatimlianskii:

だから偶然にもそうなのだが、あなたは明らかに=ではなく==を使いたかった。

と==の意味と違いについては、私はまだ理解できていません。)

 
kashi_ann:

Nah)))=と==の意味と違いについて、私はまだ理解できていない。)

"="は代入演算子で、"=="は比較演算子です。