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

 
ALXIMIKS:


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

Noooo... C'est toi qui es lent !
Pourquoi ? Parce que tu ne sais pas lire.

Et maintenant, je vais vous citer :

ALXIMIKS:

Il dit que, en préservant les principes de la POO et en ne créant pas de variables globales, nous pouvons compter le nombre de certains mots avec un membre statique de la classe,

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

J'ai besoin de la même chose, mais à partir d'une structure. Ou est-ce difficile à comprendre ? Combien de fois a-t-on demandé en quoi la structure différait de la classe, et combien de fois a-t-on répondu que c'était presque rien. Il n'y a pas tant de différences que cela. Du moins, c'est le cas en C++. J'ai posé cette question une fois sur un forum où il y a beaucoup de professionnels. On peut se demander pourquoi il y a une telle différence ici.

J'ai dit dès le début que j'avais besoin de ces variables dans une seule instance. Ou est-ce difficile à lire ?

hoz:

Laissez-moi répéter ce dont j'ai besoin. Il existe une structure dont les membres doivent stocker leurs valeurs au moment de l'exécution, mais lorsqu'on accède à une méthode de n'importe quelle classe qui utilise cette structure, les membres peuvent être modifiés. Je comprends qu'ils doivent être statiques. Ces membres doivent se trouver dans uneseule instance. Les membres de cette structure seront utilisés par de nombreuses classes et par le conseiller expert lui-même.

" smart guy " remarquez la différence ? P.S. SURLIGNÉ EN ROUGE.
 

En ce qui concerne la documentation de la distinction et de la structure des classes, lire. Encore une fois pour le "gars intelligent"ALXIMIKS ici :

Les classes présentent un certain nombre de différences par rapport aux structures :

  • Le mot-clé class est utilisé dans la déclaration ;
  • Par défaut, tous les membres de la classe ont le spécificateur d'accès private, sauf indication contraire. Le type d'accès par défaut des membres de la structure est public, sauf indication contraire ;
  • Les objets de classe possèdent toujours une table defonctions virtuelles, même si aucune fonction virtuelle n'est déclarée dans la classe. Les structures ne peuvent pas avoir de fonctions virtuelles ;
  • l'opérateurnew peut être appliqué aux objets de classe ; cet opérateur ne peut pas être appliqué aux structures ;
  • les classes ne peuventhériter que de classes ; les structures ne peuvent hériter que de structures.

Il y a quelque chose de statique ?

 

Victor, c'est quelque chose ! :-(

On vous a déjà dit plusieurs fois comment et quoi faire.

Pourquoi ne pas commencer à vous y mettre ?

 
Pourquoi, il est préférable de cracher de la bile et de crier qu'il y a des centaines d'idiots qui conduisent sur la voie en sens inverse.
 
Lire et espérer une capture d'écran du motif ( ?).... pour une collection...
 
hoz:

Ouvre la documentation ici et voit ça :

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

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

Retournez à vos Rams.

Que voulez-vous ?

 
sergeev:

Que voulez-vous ?



Lecture du manuscrit:

Lefait de ne pas pouvoir déclarer les membres d'une classe de manière statique entraînerait la nécessité de les déclarerau niveau du programmeglobal.

Nous parlons de classes et de structures. A en juger par ce que j'ai écrit ci-dessus, selon la documentation, il y a une différence entre une classe et une structure, mais clairement pas si vous pouvez ou non utiliser le modificateur static.

Отсутствие возможности объявлять статически члены класса привело бы к необходимости объявлять эти данные на глобальном уровне программы.

Est-ce que ça existe ? Si, il y en a une !

Pour aller plus loin :

Cela romprait la relation entre les données et leur classe, et serait également incompatible avec le paradigme de base de la POO, qui consiste à combiner les données et les méthodes dans une classe pour les traiter. Un membre statique permet aux données de la classe, qui ne sont pas spécifiques à une instance individuelle, d'exister dans la portée de la classe.

Puisqu'un membre de classe statique est indépendant de l'instance, la référence à celui-ci est la suivante

class_name::variable

Voilà ce que je dois faire. les membres de ma structure étaient indépendants de l'instance.

Je l'ai fait par analogie avec les classes. Vous voyez ?

 
hoz:

J'ai besoin que le les membres de ma structure ne dépendaient pas d'une instance de la structure.


structure A
{
int v ;
} ;

statique A a ;


?

 

pourquoi faire quelque chose ? créer un objet global de classe et c'est tout. (oy-yo-yo-yo - structures, puis vous comprendrez quelque chose de votre propre encore et attaque)

Pour :

1) moins de texte

2) plus de portabilité

3) si vous avez soudainement besoin d'un autre objet, il n'y a pas d'interdiction de le créer.

4) éventuellement une grande quantité de données, mais c'est une question pour les développeurs.

Cons :

1) Je n'aime pas faire référence aux champs via le nom de l'objet, je le veux via static, comprenez-moi bien.

 
sergeev:


structure A
{
int v ;
} ;

statique A a ;


?

Pourquoi cela n'est-il pas fait pour les classes selon la documentation ? Pourquoi sort-il chaque membre et l'initialise-t-il derrière la classe ?
Raison: