ラウンジでPLOについて語る - ページ 16

 
Vasiliy Sokolov:

通常のプログラミング言語(C++ではない)では、「=」演算子のオーバーロードは禁止 されています。

普通の言語がシャープ?そして、唯一知っているのは?それも最悪で、そうでなければ「インターフェースは継承ではない」などとは言いませんよね。

MQLでは、=演算子は自動生成されます。

そして、MQLではコピーコンストラクタの方がはるかに便利であることは、言うまでもないことです。数年前も今もダミーだろ。デニスみたいな奴で自尊心を高めただけだろ。

 
Комбинатор:

...デニスみたいな自尊心が高まっただけだろ。

具体的な話にはならないから、今度は他の掲示板に矛先を向けているのか。意地悪で卑屈。

(注:他の人を三人称で小文字にした、つまり、敬意もなく、「お前たちはここではノーバディだ」と言ったのだ)

 
Vasiliy Sokolov:

通常のプログラミング言語(C++ではない)では、「=」演算子のオーバーロードは禁止 されています。

この演算子をオーバーロードできるのは、特にtemplateを多用する私にはとても便利です。他にもいろいろな場面でオーバーロードしています。

そのようなオーバーロード、特に代入演算子を使う前に、なぜそのような愚かな言語の設計者がそのようなことをするのか、よく考えてみることをお勧めします。

演算子のオーバーロードの典型的な例として、複素数や行列があります。何も問題ないと思います。演算子をいつも書いているのは、コードが面倒でなくなり、ロジックがすぐにわかるようになったからです。


最もシンプル

struct MQLTICK : public MqlTick
{
  bool operator >( const double Price ) const
  {
    return(this.bid > Price);
  }

  bool operator <( const double Price ) const
  {
    return(this.ask < Price);
  }
};
 

Vasiliy Sokolovと Combinatorは、 悪態をつくのをやめてください。

そうでなければ、ボルチャンスキーを挑発者として追放しなければならないでしょう :)

 
Vasiliy Sokolov:

具体的な内容については

もっと詳しく説明する必要があるのでは?)) charp-codeを代入して書けとか、コピーコンストラクタの書き方を教えろとか、代入演算 子を持つ言語を列挙しろとか。 具体性のない話をして私を非難するのは、自分のたわごとを認めるよりずっと簡単です。
 
Rashid Umarov:

さもなくば、ウォルチャンスキーを挑発者として追放しなければならない :)

いや、それなら誰が話すんだ? 私はむしろ扇動者でありたい。

 
Vasiliy Sokolov:

文盲の嫌われ者の挑発には乗らないし、自分の主張を説明した方がいい。

通常のプログラミング言語(C++ではない)では、'='演算子のオーバーロードは禁止 されています。そして、いくつかの言語では、演算子のオーバーロードはアンチパターンとして完全に禁止されています。 私は、そのようなオーバーロード、特に代入演算子を使う前に、希望者は、その愚かな言語の設計者がなぜそうしているのかをよく考えることをお勧めします。

また、なぜ「普通のプログラミング言語」なのでしょうか?

代入演算子のオーバーロードは、多くの場合、非常に便利です。その典型的な例が「スマートポインタ」である。代入演算子はポインタをコピーするだけでなく、AddRef()を作らなければならないが、オーバーロードを使えば、これらはすべて透過的に行われる。

なぜ便利なのか?なぜなら、オブジェクト全体をコピーするよりも、ポインタをコピーする方がずっと理にかなっているからです。(また、プログラムのさまざまな場所で集中的にコピーすると、そのオブジェクトが必要かどうかを確認するのが難しくなります)。この場合、スマートポイントは非常に有効です。

もちろん、「ゴミ収集器」というものもありますが、ポインターは参照とコピー回数に完全にアクセスできるのに対し、ゴミ収集器はそうではないので、私はこの変種はあまり好きではありません。言うまでもなく、ポインターは不要になった時点でオブジェクトを破棄しますが、ゴミ収集機は多少の遅れがあっても動作します。

 
George Merts:

もちろん、「ゴミ収集器」のようなものもありますが、ポインターは参照回数やコピー回数に完全にアクセスできるのに対し、ゴミ収集器はそうではないので、私はこの選択肢はあまり好きではありません。言うまでもなく、ポインターは不要になった時点でオブジェクトを破棄しますが、ゴミ収集機は多少の遅れがあっても動作します。

うんうん、GCは強制的に実行しても、必ずしも全部は削除されないんだ。これが問題になることもある。
 
Vasiliy Sokolov:

文盲の嫌われ者の挑発には乗らないし、自分の主張を説明した方がいい。

通常のプログラミング言語(C++ではない)では、'='演算子のオーバーロードは禁止 されています。そのようなオーバーロード、特に代入演算子を使う前に、なぜそのような愚かな言語の設計者がそのようなことをするのか、よく考えてみることをお勧めします。

個人的にはandreiに、「おいおい、そんな恥ずかしいことするなよ」と言いたくなりました。FPのこと、そしてオペレーターのこと......そんなバカなことを言っている場合ではありません。hayteriteしたい - 歓迎:権威あるソースへの参照を与える、正当化する、など。今やっていることは、狂信的で、何よりも全く無教養な憎悪です。プログラマー、それも本物のプログラマーのようですね。こんなことを書くのは情けないです。


ヴァシリー 言語名を指定するのが望ましいですね。通常」「一部」「これら」という表現では、発言に信憑性がない。私たちはプログラマーであってホワイトリストではないので、具体的に発言していきましょう。

 
Yuriy Asaulenko:
うんうん、GCは強制終了しても全部削除されるとは限らないからね。これが問題になることもある。

もし、そのオブジェクトがすぐにまた作成される可能性が高いと判断した場合は、削除しない。