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

 
ALXIMIKS:

Ich habe die Verkapselung vergessen. Und sie kann gelöscht werden. Und hier gibt es keine ständigen Hinweise). Wie auch immer, Singleton ist nicht das beste Muster.

Aber wenigstens gibt es ein paar schöne Vorlagen. Für Klassen, von denen ich wahrscheinlich nur träumen würde.


 
Scriptong:
Wir haben über statische Klassenmitglieder gesprochen. Außerdem ist in meinem Beispiel m_a ein privates Mitglied. Und auf solche Klassenmitglieder kann nur von Instanzen der Klasse aus zugegriffen werden. 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.


Nun, ich habe öffentliche Denken sonst, Entfernen wird es relativ zu Statik ändern - von innerhalb der Klasse - nichts?!

Diefehlende Möglichkeit, Klassenmitglieder statisch zu deklarieren, hätte jedochzur Folge, dass diese Daten im Programmglobaldeklariert werden müssten.

Das Thema blieb unbeantwortet.

 
sergeev:

Es ist die Coolness von MQL, die angepriesen wird.

kümmern Sie sich nicht um den Wortlaut

Es scheint, dass Sie sich gar nicht die Mühe machen sollten, die "tapfere Dokumentation" zu lesen. Weil alles falsch ist. Und dann kommt ein "Schlaumeier", wie ein paar Beiträge weiter oben, und fängt an zu diskutieren. Und die Situation ist, dass ich sehr aufmerksam bin. Wenn ich lese, dass es um eine bestimmte Art von Daten geht, dann verstehe ich das auch so. Wenn es ein Fehler ist, hätte ich ihn zugeben müssen.
 
ALXIMIKS:

Jemand schrie etwas von Singleton

Gibt es Pläne, die Vorlagen auf Klassen und explizite Parametrisierung 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(dannkönnen Sienur eine Instanz vonSomeClasserstellen), aber es ist offensichtlicher, wenn auch nicht korrekt.


Ich habe das alles schon einmal gesehen. Ich habe mich gefragt, wie ich sie speziell auf meine Struktur anwenden kann. Nicht nur, um zu sehen, dass es aus irgendeiner Quelle kopiert wurde. Das kann ich auch)

Und im Allgemeinen habe ich auf Anraten von Igor verstanden, dass dies für mich wahrscheinlich nicht von Nutzen sein wird. Ich spreche also nicht mehr über dieses Muster. Und was die fragwürdige Dokumentation angeht, die sich von der C++-Dokumentation unterscheidet, so ist das natürlich richtig. Aber wie gesagt, wir können nichts dagegen tun.

Wir müssen zumindest so viel wie möglich schreiben. Bis eine Alternative verfügbar ist.

 

Sehr geehrter Herr, was war an diesem Beitrag falsch???

ALXIMIKS 03.09.2014 15:34 #
hoz:

Wenn Klassen- oder Strukturvariablen ihre Werte während der Programmausführung nicht verlieren, warum werden sie dann hier als statisch deklariert?

Sie sind im öffentlichen Bereich, man kann sagen, dass sie wie in der Struktur...


Sie sind entweder begriffsstutzig oder begriffsstutzig, entschuldigen Sie, dass ich das so offen sage, es steht schwarz auf weiß geschrieben:

Wir haben z.B. eineCParser-Klasse, die für das Parsen von Texten gedacht ist, und wirmüssendie Gesamtzahl der verarbeiteten Wörter und Zeichenzählen.Es reicht aus, die erforderlichenKlassenmitglieder als statischzu deklarierenund sie globalzu initialisieren.Dannwerdenalle Instanzen der Klasse bei der Arbeitgemeinsame Zähler für Wörter und Zeichen verwenden.

Wo immer ein Verweis auf:

Klassen- oder Strukturvariablen verlieren ihre Werte zur Laufzeit

Es besagt, dass wir unter Wahrung der OOP-Prinzipien und ohne globale Variablen zu erstellen, die Anzahl einiger Wörter mit Hilfe eines statischen Klassenmitglieds zählen können,

es (das statische Klassenmitglied) wird als eine einzige Instanz erstellt und hängt nicht von der Anzahl der erstellten Objekte einer bestimmten Klasse ab.

 

Wie funktionieren die unverständlichen Angriffe auf die Struktur und die Klasse und die Probleme, die Sie sich ausgedacht haben?

die Tatsache, dass Sie die Grundlagen von OOP und Speicherdauer nicht verstehen, als ein Konzept von variablen Eigenschaften im Allgemeinen.

 
ALXIMIKS:

Sehr geehrter Herr, was war an diesem Beitrag falsch?

Wenn Sie nicht lesen können, ist das Ihr Problem. Hier ist ein Zitat aus meiner Frage. Wenn ich mich irgendwo vertippt habe oder in der Eile etwas falsch geschrieben habe, liegt das daran, dass "Klugscheißer" wie Sie immer weiter plappern. Wenn Sie lesen können, finden Sie hier einen permanenten Link zu einem Beitrag speziell für die besonders Ahnungslosenhttps://www.mql5.com/ru/forum/152923/page6#987432

 
Was war falsch an dem Beitrag ?????????????? Ich kann nicht lesen, beantworte die Frage, wenn du lesen kannst)
 
struct A{
   static struct B{
      int x;
      int y;
   }Single;
};


void OnStart()
{
        A::Single.x = 5;
        Alert(A::Single.x);
}
 

Sie haben in zwei Tagen noch nicht herausgefunden, dass sich Statik im Unterricht anders verhält als in der Praxis?

die Strukturen scheinen von C übernommen und nur ein wenig aufgepumpt zu sein, was die Vererbung angeht,

Was den Unterricht betrifft, so ist er vollwertig.

Aus diesem Grund müssen Sie keinen Platz für eine statische Variable in Strukturen reservieren

struct A{
   static  int x;
};

aber Sie müssen einen Platz im Unterricht reservieren, sonst geht das nicht:

class B{
public:
   static  int x;
};
int B::x = 0;
Grund der Beschwerde: