MQL4でシングルトンパターンを実装することは可能ですか? - ページ 5 12345678910 新しいコメント Viktar Dzemikhau 2014.09.03 08:28 #41 sergeev: これは何?それが、あなたが求めたものです。extern修飾子を持つクラスのインスタンスです。もちろん、不条理です。でも...そう言っていましたね。しかし、その必要性を見いだせずにいます。セルゲイ しかし、構造体のインスタンスをexternにするのは良くないのでは?externがどう関係するのか全く理解できないのですが?共有するデータを「作る」必要はないので、他のクラスに含めることができます。また、これらの変数は、プログラム実行 中に値を失ってはならない、つまり静的でなければならない。エクスターンについて教えてください。何のために? --- 2014.09.03 08:40 #42 hoz: これが、あなたが求めたものです。クラスインスタンス...extern修飾子を持つ。もちろん、不条理です。でも... は、まったくコンパイルされなかったのですか?共有するデータを「作る」必要はないんです。 必要なのか? Viktar Dzemikhau 2014.09.03 08:54 #43 sergeev:全くコンパイルされなかったのですか?確認はしていない。必要なことがまだ実行されていないため。sergeev: 何が必要ですか?必要なものを繰り返し...ある構造体があり、そのメンバはプログラム実行 中に値を保存しておかなければならないが、この構造体を使用する任意のクラスの任意のメソッドがアクセスされると、メンバを変更することができる。静止画である必要があることは理解しています。これらのメンバーは、単一のインスタンスである必要があります。この構造体のメンバーは、多くのクラスとExpert Advisor自体によって使用されます。昔はそうだったんですけどね。struct Symbol_Properties { static datetime gdt_Quote; // Время поступления последней котировки static double gda_Price [2]; // Текущие рыночные цены (0 - Bid, 1- Ask) static double gd_Spread; // Размер спреда в пунктах static double gd_Swap; // Своп static double gd_Comission; // Комиссия static double gd_Pt; // Величина одного пункта static int gi_Digits; // Количество знаков в цене после запятой static int gi_StopLevel; // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктах static int gi_FreezLevel; // Уровень заморозки ордеров в пунктах }; Symbol_Properties::gdt_Quote = 0; Symbol_Properties::gda_Price [2] = {0.0, 0.0}; Symbol_Properties::gd_Spread = 0; Symbol_Properties::gd_Swap = 0; Symbol_Properties::gd_Comission = 0; Symbol_Properties::gd_Pt = 0; Symbol_Properties::gi_Digits = 0; Symbol_Properties::gi_StopLevel = 0; Symbol_Properties::gi_FreezLevel = 0;しかし、この場合、" name " が長いので、このような変数を参照するのは不便です。すなわちSymbol_Properties::gd_Pt = 0;どのように実装するのか? --- 2014.09.03 09:24 #44 hoz:必要なことを繰り返させてもらうと...プログラム実行中に値を保存しておかなければならない構造体があるが、この構造体を使用するクラスのメソッドにアクセスすると、そのメンバを変更することができる。静止画である必要があることは理解しています。これらのメンバーは、単一のインスタンスである必要があります。この構造体のメンバーは、多くのクラスやExpert Advisor自体で使用されます。作成された1つの変数を参照することの何が問題なのでしょうか? Viktar Dzemikhau 2014.09.03 09:44 #45 そして、STRUCTURE NAME.MEMBER NAMEで参照する?しかし、この変数が実行 時に現在の値を失わないという保証はあるのでしょうか? --- 2014.09.03 10:14 #46 hoz:そして、STRUCTURE NAME.MEMBER NAMEで参照するのですか?変数名.メンバー名.しかし、この変数がプログラム実行中に現在値を失わないという保証はあるのだろうか? 例:HQ? EAでマルチスレッド実行をしていますか?何を失うというのですか? Sergey Dzyublik 2014.09.03 10:26 #47 в чем проблема обращаться к единственной созданной переменной?誰にでも、自分の幻想の世界で生きる権利があるのです。が、ホズユーザーの世界を破壊 するのは異常に難しい彼の頭の中に入り込んで、何を想像しているのかがわからないからです。「割が合わない- 変数が価値を失うために作られると?現実にはどちらが。変数には、スコープ、保存期間、リンクがあります。どの変数がどのようなスコープを持ち、いつ可視化され、いつ作成され、いつ破棄され、いつどこに渡すことができるのか、ということについて学びます。ストレージの寿命について簡単に説明する。 static(すべての関数の外部で宣言された変数、またはstatic指定子を持つ変数) - 死亡時 = プログラムの存在の終了automatic (関数内で宣言された変数) - 死亡時 = 生成された関数から離れる時dynamic(newキーワードで作成された変数) - time of death = deleteキーワードの使用 Viktar Dzemikhau 2014.09.03 11:12 #48 sergeev:EAにマルチスレッドを導入していますか?どういうことかというと、そこに置いたものはそこにあるわけで、なぜ失われなければならないのか? ここの ドキュメントを開いて見てください。//+------------------------------------------------------------------+ //| Класс "Анализатор текстов" | //+------------------------------------------------------------------+ class СParser { public: static int s_words; static int s_symbols; //--- конструктор и деструктор Parser(void); ~Parser(void){}; }; ... //--- инициализация статических членов класса Parser на глобальном уровне int CParser::s_words=0; int CParser::s_symbols=0;クラスや構造体の変数がプログラム実行中に値を失わないのであれば、なぜここでstaticと宣言されているのでしょうか?パブリックセクションにあるのだから、構造的にそう言えるのでは...。 Dmitry Fedoseev 2014.09.03 11:32 #49 hoz:ここの ドキュメントを開いて見てください。クラスや構造体の変数が実行時に値を失わないのであれば、なぜ ここでstaticと宣言されているのでしょうか?パブリックセクションにあるのだから、構造的にそう言えるのでは...。 じゃあ...渡されたリンクの2番目の文章を読んでみてください。 クラス内のスタティックは、関数内のスタティックとは少し意味が異なります。 Sergey Dzyublik 2014.09.03 11:34 #50 hoz:クラスや構造体の変数が実行時に値を失わないのであれば、なぜここでstaticと宣言されているのでしょうか?パブリックセクションにある、構造のように言えるかもしれない...。 鈍感なのか、鈍感なのか、ぶっきらぼうで申し訳ないが、白黒で書いてある。例えば、テキストを解析 するためのCParserクラスが あり、処理した単語や文字の総数を 数える必要が あります。 必要なクラスメンバを static に宣言して グローバルに初期化 すれば十分 です。そうすれば、このクラスのすべてのインスタンスは共通の単語・文字カウンタを使用して 作業することになります。言及があるところではクラスや構造体の変数が実行時に値を失うOOPの原則を守り、グローバル変数を 作らず、静的なクラスメンバの助けを借りて、いくつかの単語の数を数えることができると書かれています。それ(静的クラスメンバ)は単一のインスタンスとして作成され、与えられたクラスのオブジェクトがいくつ作成されるかに依存しない。 12345678910 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これは何?
それが、あなたが求めたものです。extern修飾子を持つクラスのインスタンスです。もちろん、不条理です。でも...
そう言っていましたね。しかし、その必要性を見いだせずにいます。
しかし、構造体のインスタンスをexternにするのは良くないのでは?
externがどう関係するのか全く理解できないのですが?共有するデータを「作る」必要はないので、他のクラスに含めることができます。また、これらの変数は、プログラム実行 中に値を失ってはならない、つまり静的でなければならない。エクスターンについて教えてください。何のために?
これが、あなたが求めたものです。クラスインスタンス...extern修飾子を持つ。もちろん、不条理です。でも...
は、まったくコンパイルされなかったのですか?
全くコンパイルされなかったのですか?
確認はしていない。必要なことがまだ実行されていないため。
何が必要ですか?
必要なものを繰り返し...ある構造体があり、そのメンバはプログラム実行 中に値を保存しておかなければならないが、この構造体を使用する任意のクラスの任意のメソッドがアクセスされると、メンバを変更することができる。静止画である必要があることは理解しています。これらのメンバーは、単一のインスタンスである必要があります。この構造体のメンバーは、多くのクラスとExpert Advisor自体によって使用されます。
昔はそうだったんですけどね。
しかし、この場合、" name " が長いので、このような変数を参照するのは不便です。すなわち
Symbol_Properties::gd_Pt = 0;
どのように実装するのか?
必要なことを繰り返させてもらうと...プログラム実行中に値を保存しておかなければならない構造体があるが、この構造体を使用するクラスのメソッドにアクセスすると、そのメンバを変更することができる。静止画である必要があることは理解しています。これらのメンバーは、単一のインスタンスである必要があります。この構造体のメンバーは、多くのクラスやExpert Advisor自体で使用されます。
作成された1つの変数を参照することの何が問題なのでしょうか?
そして、STRUCTURE NAME.MEMBER NAMEで参照する?
しかし、この変数が実行 時に現在の値を失わないという保証はあるのでしょうか?
そして、STRUCTURE NAME.MEMBER NAMEで参照するのですか?
変数名.メンバー名.
しかし、この変数がプログラム実行中に現在値を失わないという保証はあるのだろうか?
例:HQ?
EAでマルチスレッド実行をしていますか?
何を失うというのですか?
誰にでも、自分の幻想の世界で生きる権利があるのです。
が、ホズユーザーの世界を破壊 するのは異常に難しい
彼の頭の中に入り込んで、何を想像しているのかがわからないからです。
「割が合わない- 変数が価値を失うために作られると?
現実にはどちらが。
変数には、スコープ、保存期間、リンクがあります。
どの変数がどのようなスコープを持ち、いつ可視化され、いつ作成され、いつ破棄され、いつどこに渡すことができるのか、ということについて学びます。
ストレージの寿命について簡単に説明する。
static(すべての関数の外部で宣言された変数、またはstatic指定子を持つ変数) - 死亡時 = プログラムの存在の終了
automatic (関数内で宣言された変数) - 死亡時 = 生成された関数から離れる時
dynamic(newキーワードで作成された変数) - time of death = deleteキーワードの使用
EAにマルチスレッドを導入していますか?
どういうことかというと、そこに置いたものはそこにあるわけで、なぜ失われなければならないのか?
ここの ドキュメントを開いて見てください。
クラスや構造体の変数がプログラム実行中に値を失わないのであれば、なぜここでstaticと宣言されているのでしょうか?
パブリックセクションにあるのだから、構造的にそう言えるのでは...。
ここの ドキュメントを開いて見てください。
クラスや構造体の変数が実行時に値を失わないのであれば、なぜ ここでstaticと宣言されているのでしょうか?
パブリックセクションにあるのだから、構造的にそう言えるのでは...。
じゃあ...渡されたリンクの2番目の文章を読んでみてください。
クラス内のスタティックは、関数内のスタティックとは少し意味が異なります。
クラスや構造体の変数が実行時に値を失わないのであれば、なぜここでstaticと宣言されているのでしょうか?
パブリックセクションにある、構造のように言えるかもしれない...。
鈍感なのか、鈍感なのか、ぶっきらぼうで申し訳ないが、白黒で書いてある。
例えば、テキストを解析 するためのCParserクラスが あり、処理した単語や文字の総数を 数える必要が あります。 必要なクラスメンバを static に宣言して グローバルに初期化 すれば十分 です。そうすれば、このクラスのすべてのインスタンスは共通の単語・文字カウンタを使用して 作業することになります。
言及があるところでは
クラスや構造体の変数が実行時に値を失う
OOPの原則を守り、グローバル変数を 作らず、静的なクラスメンバの助けを借りて、いくつかの単語の数を数えることができると書かれています。
それ(静的クラスメンバ)は単一のインスタンスとして作成され、与えられたクラスのオブジェクトがいくつ作成されるかに依存しない。