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

 
ALXIMIKS:

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

また、クラスや構造体をバイパスして「オールインワン」で記述することも可能です。プロシージャルでさえも。好きなように書けばいい、私に何を求めているのか?

ストラウストラップをもう少し教えてみてください。余計なことをたくさんでっち上げたと手紙を書く。みんな自分で選んで、みんな自分の好きなように書いている。何事も一定のタスクに分かれていると、安心して書けるんです。すべてを配信して、作品と呼ぶこと。しかし、これらのコードの断片が「ブラックボックス」に変わると、とても便利なのです。特に、あなたが言うように余分なものがあまりない場合。

ALXIMIKS

4)おそらく大きなデータの山になると思いますが、開発者の方への質問です。

ちなみに、デベロッパーは関係ありません。ポイントではありません。

質問を待っているんですけどね。ドキュメントによると差はないのに、なぜこんなにも差があるのだろう...。

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

再びゾロ目。:)

どうすればいいんだ?

 
_new-rena:
読みながら、模様のスクリーンショットに期待(?)・・・。コレクションとして

すみません、「シングル」番組があるのですが......。がなくなってしまった。
 

というフレーズがまだ理解できないので、ヘルプはちょっと安っぽいです。

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

それを理解した人は、どういう意味だったのか、説明してください。

 
keekkenen:

わかる人は、何を言いたいのか、教えてください。

mqlのかっこよさをアピールするためです。

は、わざわざ文言にこだわる必要はありません。

 
keekkenen:

クラスのメンバを静的に宣言できないと、このデータをプログラム内でグローバルに宣言 する必要が生じます。

を理解している人、どういう意味か説明してください。


の代わりに。

class CClass
{
   static int m_a;
};

が使用されるだけである。

int g_a;

そして、最初のケースでは、m_aはCClassクラスのインスタンスでのみ利用可能であり、2番目のケースでは、プログラムのどの部分からも利用可能である。

 
Scriptong:


の代わりに。

を使うしかないでしょう。

そして、最初のケースでは、m_aはCClassのインスタンスでのみ利用可能ですが、2番目のケースでは、プログラムのどの部分からでも利用可能です。


という利点・差は見当たりません。

class CClass
{
   static int m_a;
};

class CClass
{
   public:
    int m_a;
};

言葉遣いではなく、その意味するところは?

 
keekkenen:

というアドバンテージ・差は見当たりません。

1つ目は、ニムスペースに相当するものです。
 
keekkenen:


というアドバンテージ・差は見当たりません。

静的な クラスメンバについて話して いました。それに、私の例では、m_aはプライベートメンバーです。そして、そのようなクラスメンバーは、クラスインスタンスからしかアクセスできません。そのため、このクラスのインスタンス以外では、この変数の値はコードのどこでも変更することができません。それは、将来起こりうる多くのバグを排除した安全なコードを書くということです。
 

誰かがシングルトンについて叫んでいた

class SomeClass{
public:
   int a;
};

class Singleton{
protected:
        static SomeClass* _self;
        Singleton(){}
        virtual ~Singleton(){}   
public:
        static SomeClass* Instance(){
                if(_self == NULL){
                        _self = new SomeClass();
                }
                return _self;
        } 
        static void DeleteInstance(){
                        delete _self;
        }
};
 
SomeClass* Singleton ::_self = NULL;

void OnStart()
{       
        SomeClass* some_ptr = Singleton::Instance();
        Alert(some_ptr.a);                              // Alert(Singleton::Instance().a); // або просто так
        Singleton::DeleteInstance();
}

テンプレートをクラスや明示的なパラメータ設定に拡張する予定はありますか?そうでなければ、私を責めて、私が多くを望みすぎていると言っているのです。

追伸:Singletonの 中でSomeClassクラスを 宣言 する方が正しいのですが この場合、SomeClassのインスタンスは1つ しか作れません)、正しくはないですが、より分かり やすいと思います。