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

 
fxsaber:

コンストラクタがないと const フィールドを初期化できないので、コンストラクタのみを使用します。ストラクチャーでもクラスでも、違いはない。メインはオブジェクトを持つことです。

それはあなた次第です。


 
Vict:

それはあなた次第です。

コンスタンチン分野が一般常識に反しているとは思いませんでした。

 
オーバーロードされたテンプレート関数の呼び出しの優先順位に関するバグに関する情報を更新・補足 しました。
 
fxsaber:

コンスタントの分野は一般的なものと相反するものだとは思いませんでした。

いいえ))、ただ、構造上、正しいはずだと思っただけです。では、なぜ松葉杖が必要なのでしょうか?配列を作り、ループしてset()するのは、とてもエレガントです。ロジックに間違いがある(どこかで呼び出しが繰り返される)場合は、クラッシュが発生します。

class A {
    int a;
public:
    A() : a(INT_MAX) {}
    void set(int aval) {if (a != INT_MAX) abort(); a = aval;}
    int get() {return a;}
};
 
Vict:

他人の沼に鼻を突っ込むのはどうかと思う。

 
Sergey Dzyublik:

他人の沼に鼻を突っ込むのはどうかと思う。

ジャンキー?fxsaberが アドバイスを求めてきたので、教えてあげました。

 
fxsaber:

私見では、作成後に決して変更されない(変更されるべきではない)フィールドに対してconstを記述するのが論理的である。

いいえ、ごくまれにですが、コンストフィールドを作ることがあります。そして、シンプルなタイプにはない。

 
Vict:

ジャンキーか?fxsaberが アドバイスを求めたので答えた。

シンプルであれば、人々はあなたに手を差し伸べるでしょう...。

 
Koldun Zloy:

いいえ。コンスタントフィールドはごくまれにしか作られません。そして、シンプルなタイプにはない。

簡単な例です。プリセットされた期間を持つMAUの配列が必要です。

それぞれが1つの型のオブジェクトである。一種類のオブジェクトは、その時代によって一意に定まることが明らかである。だからこそ、コンスト化するのが理にかなっているのでしょう。


他の言語では、単にポインタの配列を作るだけです。MQLにはそのような自由はありません。

 
Koldun Zloy:

いいえ。コンスタントフィールドはごくまれにしか作られません。そして、シンプルなタイプにはない。

MQLのオプティマイザやコンパイラがどのように設定されているかご存知ですか?
単純な型のconstフィールドがこの目的に使われていないと、どうして断言できるのでしょうか?