Singleton modelini MQL4'te uygulamak mümkün mü? - sayfa 7

 
ALXIMIKS :

hayır bir şey yap? bir global sınıf nesnesi oluşturun ve hepsi bu. (oh-yo-yo-th - yapılar , sonra yine kendinize ait bir şey anlayacaksınız ve saldıracaksınız)

Ayrıca sınıfları ve yapıları atlayarak "hepsi bir arada" yazabilirsiniz. Hatta prosedürel olarak. İstediğin gibi yaz, benden ne istiyorsun?

Stroustrup hala denemeyi öğretiyor. Ona bir sürü gereksiz şey bulduğu bir mektup yazın. Herkes kendi seçer ve herkes istediği gibi yazar. Her şey belirli görevlerin performansına göre bölündüğünde yazmak benim için uygundur. Her şeyi dağıtmak ve buna iş parçası demek. Ancak bu kod parçaları bir "kara kutu" haline geldiğinde çok uygundur. Hele de dediğin gibi fazla gereksiz bir şey olmadığında:

ALXIMIKS :

4) belki de büyük bir veri doğruluğu, ancak soru geliştiriciler içindir.

Bu arada, geliştiricilerin bununla hiçbir ilgisi yok. O an değil.

İşte sorum. Belgelere göre hiçbiri yokken neden böyle bir fark olduğunu merak ediyorum ...

 
hoz :
Ve bu neden belgelere göre sınıflar için yapılmıyor? Neden sınıfın her üyesi orada çıkarılıyor ve başlatılıyor?

yine iğrenç. :)

bizden ne istiyorsun

 
_new-rena :
Okudum ve umuyorum ki ekran desen (?) .... ihtiyacınız olan koleksiyon için ...

Üzgünüm, burada programlama "yalnız" ... gitti.
 

referans hala bir şekilde perişan, çünkü hala ifadeyi anlamadım

Sınıf üyelerinin statik olarak bildirilememesi, bu verilerin programın global düzeyinde bildirilmesi ihtiyacına yol açacaktır .

kim anladı, anlatmak istediklerini açıkla?

 
keekkenen :

kim anladı, anlatmak istediklerini açıkla?

bu, mql'nin serinliği ile desteklendi

kelimelerle uğraşmayın

 
keekkenen :

Sınıf üyelerinin statik olarak bildirilememesi, bu verilerin programın global düzeyinde bildirilmesi ihtiyacına yol açacaktır .

kim anladı, anlatmak istediklerini açıkla?


Yerine:

 class CClass
{
   static int m_a;
};

birinin sadece kullanması gerekir:

 int g_a;

Ayrıca, ilk durumda, m_a yalnızca CClass sınıfının örneklerinde ve ikinci durumda, programın herhangi bir bölümünden kullanılabilir.

 
Scriptong :


Yerine:

birinin sadece kullanması gerekir:

Ayrıca, ilk durumda, m_a yalnızca CClass sınıfının örneklerinde ve ikinci durumda, programın herhangi bir bölümünden kullanılabilir.


Arasında herhangi bir avantaj/fark görmüyorum

 class CClass
{
   static int m_a;
};

önceki

 class CClass
{
   public :
     int m_a;
};

Sözcüklerle ilgili değil, bununla ne kastedildiğiyle ilgili?!

 
keekkenen :

Arasında herhangi bir avantaj/fark görmüyorum

Ad alanının ilk analogu.
 
keekkenen :


Arasında herhangi bir avantaj/fark görmüyorum

Statik sınıf üyelerinden bahsediyorduk. Ayrıca benim örneğimde m_a özel bir üyedir. Ve bu tür sınıf üyelerine yalnızca sınıfın örneklerinden erişilebilir. Bu nedenle, sınıf örnekleri dışında kodun hiçbir yerinde bir değişkenin değeri değiştirilemez. Bu, gelecekte olası birçok hatayı ortadan kaldıran güvenli kod yazma meselesidir.
 

Biri singleton hakkında bağırdı

 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();
}

Ve şablonların sınıflara ve açık bir parametre ayarına genişletilmesi planlanıyor mu? Sonra küfrediyor ve gerçekten çok şey istediğimi söylüyor.

Not, SomeClass sınıfını Singleton içinde bildirmek daha doğrudur (o zaman tam olarak yalnızca bir SomeClass örneği    oluşturulabilir), ancak doğru olmasa da bir şekilde daha açık bir şekilde