Ist es möglich, ein Singleton-Muster in MQL4 zu implementieren. - Seite 7

 
ALXIMIKS:

Warum etwas tun? Erstellen Sie ein globales Klassenobjekt und das war's. (oy-yo-yo-yo - Strukturen, dann wirst du etwas Eigenes verstehen und wieder angreifen)

Und man kann auch "alles in einem" schreiben, indem man Klassen und Strukturen umgeht. Auch in verfahrensrechtlicher Hinsicht. Schreiben Sie, was Sie wollen, aber was wollen Sie von mir?

Versuchen Sie, Straustrup noch etwas beizubringen. Schreiben Sie ihm einen Brief, in dem Sie ihm sagen, dass er eine Menge unnötiger Dinge erfunden hat. Jeder wählt sein eigenes, und jeder schreibt so, wie er will. Ich fühle mich beim Schreiben wohl, wenn alles nach bestimmten Aufgaben aufgeteilt ist. Alles zu verteilen und es ein Stück Arbeit zu nennen. Aber wenn diese Codestücke zu einer "Black Box" werden, ist das sehr praktisch. Vor allem, wenn es, wie Sie sagen, nicht viel mehr gibt:

ALXIMIKS:

4) vielleicht ein großer Haufen Daten, aber das ist eine Frage für die Entwickler.

Übrigens haben die Entwickler nichts damit zu tun. Darum geht es nicht.

Ich warte allerdings noch auf meine Frage. Ich frage mich, warum es einen solchen Unterschied gibt, wo es doch in der Dokumentation keinen gibt...

 
hoz:
Warum wird dies nicht für Klassen gemäß der Dokumentation getan? Warum wird jedes Mitglied pro Klasse herausgenommen und initialisiert?

wieder zorowo. :)

Was sollen wir Ihrer Meinung nach tun?

 
_new-rena:
Lesen und Hoffen auf einen Screenshot des Musters (?).... für eine Sammlung...

Tut mir leid, es gibt einige "Single"-Programme... weg.
 

die Hilfe ist allerdings etwas kitschig, weil ich den Satz immer noch nicht verstehe

DaKlassenmitglieder nicht statisch deklariert werden können, müssten diese Daten im Programmglobaldeklariert werden.

Wer es verstanden hat, möge bitte erklären, was damit gemeint war?

 
keekkenen:

die es verstehen, mir sagen, was sie zu sagen versuchen?

Es soll die Coolness von MQL fördern.

Sie brauchen sich nicht um den Wortlaut zu kümmern.

 
keekkenen:

Diefehlende Möglichkeit, Klassenmitglieder statisch zu deklarieren, würde dazu führen, dass diese Daten im Programmglobaldeklariert werden müssten.

die verstehen, erklären, was Sie damit meinen?


Anstelle von:

class CClass
{
   static int m_a;
};

müsste nur verwendet werden:

int g_a;

Und im ersten Fall ist m_a nur in Instanzen der Klasse CClass verfügbar, im zweiten Fall von jedem Teil des Programms aus.

 
Scriptong:


Anstelle von:

müsste nur verwendet werden:

Und im ersten Fall ist m_a nur in Instanzen der Klasse CClass verfügbar, während es im zweiten Fall von jedem Teil des Programms aus verfügbar ist.


Ich sehe keinen Vorteil/Unterschied zwischen

class CClass
{
   static int m_a;
};

Vor

class CClass
{
   public:
    int m_a;
};

Es geht nicht um den Wortlaut, sondern um das, was damit gemeint ist ?!

 
keekkenen:

Ich sehe keinen Vorteil/Unterschied zwischen

Der erste ist das Äquivalent eines Nimespaces.
 
keekkenen:


Ich sehe keinen Vorteil/Unterschied zwischen

Wir haben über statische Klassenmitglieder gesprochen. Außerdem ist in meinem Beispiel m_a ein privates Mitglied. Und solche Klassenmitglieder sind nur von Klasseninstanzen aus zugänglich. Der Wert der Variablen kann also nirgendwo im Code geändert werden, außer bei Instanzen der Klasse. Es geht darum, sicheren Code zu schreiben, der viele mögliche zukünftige Fehler ausschließt.
 

Jemand schrie etwas von Singleton

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

Gibt es Pläne, die Vorlagen auf Klassen und explizite Parametereinstellungen zu erweitern? Sonst macht sie mir Vorwürfe und sagt mir, dass ich zu viel will.

P.S., es wäre korrekter, dieKlasse SomeClass innerhalb vonSingleton zu deklarieren(in diesem Fallkönnen Sienur eine Instanz vonSomeClasserstellen), aber es ist offensichtlicher, wenn auch nicht korrekt.

Grund der Beschwerde: