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

 
Комбинатор:
ポインタにはrvalueが代入され、新しいAで上書きされる。

どこだ、ここか?

this[0] = new A;

ここでoperator[]はセルData[0]に含まれる値を返す。このセルへの参照やポインタではなく、このセルに含まれる値、すなわちrvalueの単なる コピー である。もちろん、このコピーには何も割り当てることはできません。operator=でどう変わるのかがわからない。

 
Sergei Vladimirov:
そして、最後の例はまだ理解できない。クラスAで"="演算子をオーバーロードすると、this[0]がrvalueからlvalueに変わる...。どうしたらいいのかわからない。これはMCLの機能の一種なのでしょうか、プロにはそのような動作はありません。fxsaber さん、どうやってこの構成にたどり着いたのでしょうか?オーバーロード=Aでという意味です。それとも試行錯誤で?
十分に理解した上で、私はそうしました。そうでなければ、絶対にこんなことは書かない。

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

ライブラリ: TypeToBytes

fxsaber さん 2016.09.21 21:25

発行しました。これで、どんな変数(構造体や標準型)でも、配列と同様に読み込みだけでなく、WRITEもできるようになりました。

_W(AnyVariable)[Pos] = AnyValue; // Записывает по байтовому смещению Pos значение AnyValue в переменную AnyVariable

実装する前に推測するのは簡単ではありませんでした。おそらく、平均的なOOPの熟練度を測る良いテストになったのではないでしょうか。

もし、同じようなものを知っている人がいたら、教育のためにリンクを共有してください。


 
fxsaber:
十分に理解した上で、私はそうしました。そうでなければ、こんなことは書かない。

じゃあ、全部わかっていても、言えないんですか?))なるほど。
 
Sergei Vladimirov:
じゃあ、全部わかっていても、言えないんですか?))なるほど。
ええ、まあ、そんなこともありますよ。形にできないんです。だから、開発者にちゃんとやってくれって言ってるんです。
 
Sergei Vladimirov:

どこだ、ここか?

this[0] = new A;

ここでoperator[]はセルData[0]に含まれる値を返す。このセルへの参照やポインタではなく、このセルに含まれる値、すなわちrvalueの単なる コピー である。もちろん、このコピーには何も割り当てることはできません。Aクラスのoperator=でどう変わるのか理解できない。

おそらく、MCLのリファレンスについても、それと同じような問題があるのでしょう。

A* operator []( const int Pos )
{
    return(this.Data[Pos]);
}

ここで返されるのは値ではなく、その参照、つまりlvalueであることが判明するかもしれない...。しかし、なぜすぐに新しい値を代入できないのか、なぜAクラスでoperator=が必要なのか?理解できない...

 
Sergei Vladimirov:

おそらく、MKLでも同じようなリファレンス的なものばかりなのでしょう。

ここで返されるのは値ではなく、その参照、つまりlvalueであることが判明するかもしれない......。しかし、なぜすぐに新しい値を代入できないのか、なぜAクラスでoperator=が必要なのか?理解できない...

rvalue-pointerに何かを代入すると、そのポインタは自動的にオブジェクト参照にキャストされます。 まあ、みんな昨日生まれたんだけどね!

デスクにはずっとそのことをお願いしているのですが、実際には引数を参照渡し するのと変わらないのに、安全ではないと言われます。

 
Alexey Navoykov:

rvalue-pointerに何かを代入すると、そのポインタは自動的にオブジェクト参照に変換されます。 まるで昨日のことのようですね。

理解できました、ありがとうございます。
 
リボン内の行をハイライトする機能が不足している。見ることはできても、ハイライトすることができないんです。
 
これは一体何なんだ?
2016.09.26 14:02:11.858 Books   invalid book item[RTS-12.16,buy,98090.00000,-16]
 

タイプミスマッチ

MqlTick time_msc -long.

CopyTicks from - ulong.