MQL5 コンパイラはクラスとそのポインタを区別しない - ページ 8

 

オブジェクト型に対する暗黙のコピーを禁止する理由がわからないのですが?それが何の役に立つのか?オブジェクトは、OOPで偽装された構造体ではなく、本当にオブジェクトであり、参照渡しに便利なように、とにかくフィールドを含むだけでは論理が成り立ちません。つまり、クラス内で明示的に=演算子をオーバーロードすることなくコピーすることは、必要ないだけです。

 
Ilya Malev:

どこですか?

MQLでは
 

Sです、PLが欲しいですか?

イリヤです。

 
Alexey Navoykov:
MQLでは

そして、それがMQLにどうつながっていくのか。簡単な例を示してもらえますか?

 
Alexey Navoykov:
なぜ動かないかというと、必要なものに変換するための* 演算子や& 演算子があるからです。

私には効果がありませんでした(一応、禁止されています)

class A
{
public:
  int i;
  
  void operator =( const A &Object )
  {
    this = Object;
  }
};

void OnStart()
{
  A a1;
  A* a2 = new A;
  A* b = &a1;
  
  a2 = a1; // Хочу копирование объекта
  a2 = b;  // Хочу копирование объекта  
}
 
Ilya Malev:

そして、それがMQLにどうつながっていくのか。簡単な例で教えてください。

fxsaber

できなかった(禁止されると困るので)。

くそっ、みんな、何してるんだ?

A a;
A *p;
*p = a; 
 
Alexey Navoykov:

くそっ、みんな、何してるんだ?

視認可能な範囲...

 
Alexey Navoykov:

くそっ、みんな、何してるんだ?

100点満点だぜ。以前試したときに悪魔に騙されたのか、それとも最新ビルドのどれかが追加したのか。

 
Ilya Malev:

100点満点だぜ。以前試したときに悪魔に騙されたのか、それとも最新のビルドのどれかが追加したのか、どちらかでしょう。

この機能は3年程前からMQLに搭載されています。
 

てっきりMQLにそんなものはないと思っていたのに!?どこでこんな足が生えたんだろう...と思うのは私だけではないはずです。

QBやドキュメンテーションに1例でもあるかな?露骨に気づかなかったか...。