MQL4でシングルトンパターンを実装することは可能ですか? - ページ 6

 
ALXIMIKS:


あなたは鈍感なのか、鈍感なのか、白黒で書かれていて申し訳ありません。

いやー...。鈍感なのはお前だ!
なぜ?だって、読めないんだもん。

そして、今度は私が引用します。

ALXIMIKS

OOPの原則を守り、グローバル変数を作らないことで、ある単語の数を静的なクラスメンバで数えることができると書かれています。

それ(静的クラスメンバ)は単一のインスタンスとして作成さ れ、そのクラスのオブジェクトがいくつ作成されるかに依存しない。

同じものを、構造からだけでなく、必要です。それともわかりにくいですか?クラスと構造がどう違うのか、何度質問され、ほとんど何もないという答えが返ってきたことか。それほど多くの違いはありません。少なくとも、C++ではそうなのです。以前、プロがたくさんいるある掲示板でこの質問をしたことがあります。なぜここにこのような違いがあるのか、疑問が残ります。

私は最初から、これらの変数が1つのインスタンスに必要だと言っていました。それとも読みにくい?

ホズ

必要なことを繰り返させてください。構造体があり、そのメンバは実行時に値を格納しなければならないが、この構造体を使用する任意のクラスの任意のメソッドがアクセスされると、メンバを変更することが可能である。静止画である必要があることは理解しています。これらのメンバーは 単一のインスタンス である必要が ありますこの構造体のメンバーは、多くのクラスやExpert Advisor自身によって同様に使用されます。

" smart guy " 違いに気づきましたか?p.s. 赤で囲った部分
 

階級の区別や構造の文書化については、読んでみてください。ここでも「賢い人」ALXIMIKSに

クラスは、構造体とは異なる点がいくつかあります。

  • 宣言では、キーワードclassを使用します。
  • デフォルトでは、特に指定がない限り、すべてのクラスメンバはアクセス指定子privateを持つ。構造体メンバのデフォルトのアクセスタイプは、特に指定がない限り public である。
  • クラスオブジェクトは、クラス内で仮想関数が宣言されていない場合でも、常に仮想関数 テーブルを持ちます。構造体は仮想関数を持つことができません。
  • この演算子は構造体には適用できません。
  • クラスはクラスからしか継承 できず、構造体は構造体からしか継承できません。

静電気について何かありますか?

 

ビクター、さすがです:-(

もう、何度もやり方や内容を教えてもらっていますね。

気合いを入れて始めてみてはいかがでしょうか。

 
なぜかというと、胆汁を吐いて、対向車線を走るバカが何百人もいると叫んだ方がいいのです。
 
読みながら、模様のスクリーンショットに期待(?)・・・。コレクションとして
 
hoz:

ここの ドキュメントを開いて見てください。

クラスや構造体の変数が実行時に値を失わないのであれば、なぜここでstaticと宣言されているのでしょうか?

パブリックセクションにあるのだから、構造的にそう言えるのでは...。

ラムズに戻る

何がしたいんだ?

 
sergeev:

なんぼのもんじゃい



マニュアルの 読み方

クラスメンバを静的に宣言 できない場合、グローバルプログラムレベルで宣言 する必要があります。

クラスや構造の話をしているのです。上に書いたことから判断すると、ドキュメントによると、クラスと構造体の違いはありますが、明らかにstatic 修飾子が使えるか使えないかの問題ではありません。

Отсутствие возможности объявлять статически члены класса привело бы к необходимости объявлять эти данные на глобальном уровне программы.

そんなのあるんですか?はい、ありますよ!(笑

さらに進む。

これでは、データとそのクラスの関係が切れてしまいますし、データとそれを扱うメソッドをクラスで組み合わせるという、基本的なOOPのパラダイムとも矛盾しています。静的メンバは、個々のインスタンスに固有でないクラスデータを、クラスのスコープ内に存在させることができます。

静的なクラスメンバはインスタンスに依存しないので、その参照は次のようになります。

class_name::variable

こうすればいいんだ。 私の構造体メンバはインスタンス非依存でした.

授業に例えてやってみました。ほらね?

 
hoz:

が必要なんです。 私の構造体メンバは、構造体のインスタンスに依存していませんでした。.


構造体A
{
int v;
};

static A a;


?

 

グローバルクラスの オブジェクトを1つ作るだけです。(オイオイ......構造物、それならまた自分の何かを理解して攻撃する)

長所

1) テキストを減らす

2)よりポータビリティを高める

3)急に別のオブジェクトが必要になった場合、その作成が禁止されていないこと

4)もしかしたら大量のデータかもしれませんが、これは開発者の問題です。

短所

1) オブジェクト名でフィールドを参照するのは好きではありません、staticで参照したいのです。

 
sergeev:


構造体A
{
int v;
};

static A a;


?

ドキュメントによると、なぜクラスに対して行われないのでしょうか?なぜ、各メンバーを取り出し、クラスの後ろで初期化するのでしょうか?