struct Symbol_Properties
{
staticdatetime gdt_Quote; // Время поступления последней котировкиstaticdouble gda_Price [2]; // Текущие рыночные цены (0 - Bid, 1- Ask)staticdouble gd_Spread; // Размер спреда в пунктахstaticdouble gd_Swap; // Свопstaticdouble gd_Comission; // Комиссияstaticdouble gd_Pt; // Величина одного пунктаstaticint gi_Digits; // Количество знаков в цене после запятойstaticint gi_StopLevel; // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктахstaticint gi_FreezLevel; // Уровень заморозки ордеров в пунктах
};
int Symbol_Properties::gdt_Quote = 0;
int Symbol_Properties::gda_Price = 0;
int Symbol_Properties::gd_Spread = 0;
int Symbol_Properties::gd_Swap = 0;
int Symbol_Properties::gd_Comission = 0;
int Symbol_Properties::gd_Pt = 0;
int Symbol_Properties::gi_Digits = 0;
int Symbol_Properties::gi_StopLevel = 0;
int Symbol_Properties::gi_FreezLevel = 0;
基本的なこともわからず、静的なクラスフィールドも正しく作れず、何のパータンを語れるのでしょう。
(hobberにはsingletonに関する記事がたくさんあり、何のためにあるのか、どうすればいいのか、何が問題なのかが書かれています)。
シングルトンかスタティッククラスか?シングルトンパターンの使用
(Hubraにはシングルトンに関する記事がたくさんあり、何のため、どのように、何が問題なのかが書かれています)
シングルトンかスタティッククラスか?Singletonパターンを使用する。
私が遭遇していないとでも思っているのでしょうか。その仕組みはまだよく分かっていないんです。ここからが本題です。しかし、結論から言うと、シングルトンは必要ないんです。だから、スタティック・メンバーでやりくりする。
基本的なこともわからず、静的なクラスフィールドも正しく作れず、よく父系を語れるものだ。
方法を知っている場合は、修正することができます。昨日はドキュメントにしたがって書きました。でも、エラーも多いんですよ。こんな感じ。
次はどうする?
間違えて投げ捨ててしまった。とにかく、現在のバージョンはここが正しいのです。
これで、各スタティック変数をこのような長い名前で参照しなければならなくなったのでは?
Symbol_Properties::gd_Spread = 0;
それとも、変数の初期化 構造を記述した後、初期化する 際に、対応する静的メンバを何らかの型の変数に代入するように実装するのが簡単でしょうか?
そして、コードの中で、この変数を使って、対応するスタティック変数を参照しますよね?
ええ、まあ...要はVadimが知って いるということです :))))))。
ええ、それが普通の台詞なんです。
Q:友達にお菓子を勧められました。まさに私が求めていたものです
私:(困惑・・・。お菓子と何の関係があるのですか?Bは友達の誕生日会に行くとか、自分の子供か誰かの子供をもてなしたいとか?もしかしたら、商売を始めて、今はお菓子を売っているのかもしれませんね。もしかしたら、ベラルーシでは最後のお菓子で、Bが独占しているのかもしれませんね。Bがお菓子を逃したらどうする?他にも「なぜお菓子なのか、どうすればいいのか」というテーマで、いろいろな考えが頭の中を駆け巡りました。Bの時と同じように、またしても私のテレパシー能力では無理だった。何も思い浮かばなかった)。
手がかりがない。
1.これは何のためにあるのでしょうか?
2.クラスの静的フィールドにアクセスする方法は2つあります(構造体はデフォルトと継承でパブリックアクセスクラスとなります)。
(a) クラスの名前空間を通して - 例:Symbol_Properties::gd_Spread
(double Spread = Symbol_Properties::gd_Spread) -Spreadの値はSymbol_Properties クラスのgd_Spreadと等しく なります。
(double Spread = Symbol_Properties::gd_Spread =0)Symbol_Properties クラスのgd_Spread の値でSpread の値が 0 となる。
b)クラスのオブジェクト(例えば、Symbol_Properties obj;)を作成し、このオブジェクトを通して、クラスの通常のフィールドとして参照する。
(double スプレッド = obj.gd_Spread)
(double スプレッド = obj.gd_Spread =0)
1.何のために?
利便性...結局のところ、これらの変数が単一のインスタンスで使用されるのであれば、なぜオブジェクトを作成する必要があるのでしょうか?それに、変数を参照するときに、VARIABLE.VARIABLE NAMEがあれば、コードを読むときに 便利です。
2.クラスの静的フィールドにアクセスする方法は2つあります(構造体はデフォルトでパブリックアクセスが可能なクラスであり、継承されます)。
(a) クラスの名前空間を介して - 例:Symbol_Properties::gd_Spread
(double Spread = Symbol_Properties::gd_Spread) -Spreadの値はSymbol_Properties クラスのgd_Spreadと等しく なります。
(double Spread = Symbol_Properties::gd_Spread =0)-Symbol_Properties クラスのgd_Spread値とSpread値が 0 に等しくなるようにします。
そのとおりです。だから、そういうふうにしたんです。この構造体の変数を参照する変数をすぐにゼロで初期化し、メモリに永久保存しているのです。これらの変数は1つのインスタンスで必要とされるため、論理的なものです。だから、この場合、別のオブジェクトを作る必要はないのです。結局のところ、論理的に...賛同していただけないのですか?
b) クラスオブジェクトを作成し(例えばSymbol_Properties obj;)、 このオブジェクトを通して通常のクラスフィールドとして参照する。
STATE VARIABLEは、異なるクラスで使用されているため、私は気に入りませんでした。だから、なんとなくグルーピングしてみたんです。
定数は値が変化しないので好まれないが、これらの変数は値を変化させることができるはずである。