Est-il possible d'implémenter un modèle singleton dans MQL4 ? - page 8

 
ALXIMIKS:

J'ai oublié l'encapsulation. Et il peut être supprimé. Et il n'y a pas de pointeurs constants ici). De toute façon, le singleton n'est pas le meilleur modèle.

Mais au moins, il y a de beaux modèles. Pour des cours dont je ne pourrais probablement que rêver.


 
Scriptong:
Nous parlions des membres statiques de la classe. De plus, dans mon exemple, m_a est un membre privé. Et ces membres de classe ne sont accessibles qu'aux instances de la classe. Ainsi, la valeur de la variable ne peut être modifiée nulle part dans le code, sauf à l'intérieur des instances de la classe. Il s'agit d'écrire un code sûr qui élimine un grand nombre de bogues futurs possibles.


eh bien, j'ai mis le public en pensant autrement, en le supprimant il va changer par rapport aux statiques - de l'intérieur de la classe - rien ? !

Cependant, le faitde ne pas pouvoir déclarer les membres de la classe de manière statique entraînerait la nécessité de déclarer ces donnéesde manière globale dans le programme.

Le sujet est resté sans réponse.

 
sergeev:

C'est le côté cool de MQL qui est mis en avant.

ne vous préoccupez pas de la formulation

Il semble que vous ne devriez pas prendre la peine de lire la "valeureuse documentation" du tout. Parce que tout est faux. Et puis un "gars intelligent" sort, comme quelques posts plus haut et commence à discuter. Et la situation est que je suis très attentif. Si je lis qu'il s'agit d'un type particulier de données, je le prends dans ce sens. Si c'est un oubli, j'aurais dû le reconnaître.
 
ALXIMIKS:

Quelqu'un a crié à propos de singleton

Est-il prévu d'étendre les modèles aux classes et au paramétrage explicite ? Sinon, il me blâme et me dit que je veux trop.

P.S., il serait plus correct de déclarer laclasse SomeClass à l'intérieur deSingleton (dans ce cas, vousnepouvez créerqu'une seule instance deSomeClass), mais c'est plus évident, bien que pas correct.


J'ai déjà vu tout ça. Je me demandais comment l'appliquer spécifiquement à ma structure. Pas seulement pour le voir copié d'une source quelconque. Je peux le faire aussi)

Et en général, j'ai compris, sur les conseils d'Igor, que cela ne me sera probablement pas utile. Donc je ne parle plus de ce modèle. Quant à la documentation douteuse, qui diffère de celle du C++, c'est évidemment vrai. Mais, encore une fois, il n'y a rien que nous puissions faire à ce sujet.

Nous devrons écrire au moins autant que possible pour le moment. Jusqu'à ce qu'une alternative soit disponible.

 

Cher Monsieur, qu'est-ce qui n'allait pas dans ce message ?

ALXIMIKS 03.09.2014 15:34 #
hoz:

Si les variables de classe ou de structure ne perdent pas leur valeur pendant l'exécution du programme, alors pourquoi sont-elles déclarées statiques ici ?

Ils sont dans la section publique, vous pouvez dire que comme dans la structure...


Vous êtes soit obtus, soit obtuse, désolé d'être brutal, c'est écrit noir sur blanc :

Par exemple, nous avons une classeCParser, destinée à analyser des textes, et nous avonsbesoin de compterle nombre total de mots et de caractères traités.Il suffit de déclarer lesmembres de la classe nécessairescomme statiques et de lesinitialiser globalement.Ensuite, toutes les instances de la classeutiliseront des compteurs communs de mots et de caractères lors du travail.

Partout où il y a une référence à :

Les variables de classe ou de structure perdent leur valeur au moment de l'exécution.

Il dit que, en respectant les principes de la POO et en ne créant pas de variables globales, nous pouvons compter le nombre de mots à l'aide d'un membre statique de la classe,

il (le membre statique de la classe) est créé en tant qu'instance unique et ne dépend pas du nombre d'objets créés d'une classe donnée.

 

Comment font les attaques incompréhensibles sur la structure et la classe et les problèmes que vous avez inventés vous-même ?

concernent le fait que vous ne comprenez pas les bases de la POO et de la durée de stockage, en tant que concept d'assemblage des propriétés des variables en général ???

 
ALXIMIKS:

Cher Monsieur, qu'est-ce qui n'allait pas dans ce post ?

Si vous ne savez pas lire, c'est votre problème. Voici une citation de ce que je demandais. Si j'ai fait des fautes d'orthographe ou si j'ai écrit quelque chose de faux dans la précipitation, c'est parce que des "intelligents" comme vous n'arrêtent pas de jacasser. Si vous savez lire, voici un lien permanent vers un article spécialement destiné aux personnes particulièrement désemparéeshttps://www.mql5.com/ru/forum/152923/page6#987432.

 
Quel était le problème dans le poste ? ????????????? Je ne sais pas lire, répondez à la question si vous savez lire)
 
struct A{
   static struct B{
      int x;
      int y;
   }Single;
};


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

Vous n'avez pas compris en deux jours que les statiques se comportent différemment en statique et en classe ?

les structures semblent être tirées du c et seulement un peu gonflées en termes d'héritage,

Quant aux classes, elles sont à part entière.

De ce fait, vous ne devez pas réserver d'espace pour une variable statique dans les structures

struct A{
   static  int x;
};

mais vous devez réserver une place dans les classes, sinon vous n'en aurez pas :

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