¿Es posible implementar un patrón singleton en MQL4? - página 6

 
ALXIMIKS:


Eres un obtuso o una obtusa, perdona que te ponga en evidencia, escrito en blanco y negro:

Noooo... ¡Tú eres el lento!
¿Por qué? Porque no sabes leer.

Y ahora voy a citar:

ALXIMIKS:

Dice que preservando los principios de la POO y no creando variables globales, podemos contar el número de algunas palabras con un miembro estático de la clase,

(miembro estático de la clase)se crea como una única instancia y no depende de cuántos objetos de la clase se creen.

Necesito lo mismo, sólo que de una estructura. ¿O es difícil de entender? Cuántas veces se preguntó en qué se diferencia la estructura de la clase, y cuántas veces se respondió que en casi nada. No hay tantas diferencias. Al menos, en C++ es así. Una vez hice esta pregunta en un foro donde hay muchos profesionales. El porqué de esta diferencia es una cuestión.

Desde el principio dije que necesitaba estas variables en una sola instancia. ¿O es difícil de leer?

hoz:

Déjame repetir lo que necesito. Hay una estructura, cuyos miembros deben almacenar sus valores en tiempo de ejecución, pero cuando se accede a cualquier método de cualquier clase que utiliza esta estructura, los miembros pueden ser modificados. Entiendo que tienen que ser estáticos. Estos miembros deben estar en una sola instancia. Los miembros de esta estructura serán utilizados por muchas clases y también por el propio Asesor Experto.

"chico listo" ¿notas la diferencia? P.D. RESALTADO EN ROJO.
 

En cuanto a la documentación de la distinción y estructura de clases, léase. De nuevo para los "listillos"ALXIMIKS aquí:

Las clases tienen una serie de diferencias con las estructuras:

  • La palabra clave class se utiliza en la declaración;
  • Por defecto, todos los miembros de la clase tienen el especificador de acceso private, a menos que se especifique lo contrario. El tipo de acceso por defecto para los miembros de la estructura es público, a menos que se especifique lo contrario;
  • Los objetos de clase siempre tienen una tabla defunciones virtuales, incluso si no se declaran funciones virtuales en la clase. Las estructuras no pueden tener funciones virtuales;
  • el operadornew puede aplicarse a objetos de clase; este operador no puede aplicarse a estructuras;
  • las clases sólo puedenheredar de las clases; las estructuras sólo pueden heredar de las estructuras.

¿Hay algo sobre la estática?

 

¡Victor, eso es algo! :-(

Ya te han dicho cómo y qué hacer varias veces.

¿Por qué no empiezas a meterte en ello?

 
Por qué, es mejor escupir bilis y gritar que hay cientos de idiotas conduciendo en el carril contrario.
 
Leyendo y esperando una captura de pantalla del patrón (?).... para una colección...
 
hoz:

Abre la documentación aquí y ve que:

Si las variables de clase o estructura no pierden sus valores en tiempo de ejecución, ¿por qué se declaran aquí como estáticas?

Están en la sección pública, se puede decir que como en la estructura...

de vuelta a sus carneros.

¿Qué quieres?

 
sergeev:

¿qué quieres?



Leyendo el manus:

El hecho deno poder declarar los miembros de la clase de forma estática haría necesario declararlosa nivel global del programa.

Estamos hablando de clases y estructuras. A juzgar por lo que escribí arriba, según la documentación hay una diferencia entre una clase y una estructura, pero claramente no se trata de si se puede o no usar el modificador static.

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

¿Existe tal cosa? Sí, lo hay.

Yendo más allá:

Esto rompería la relación entre los datos y su clase, y también es inconsistente con el paradigma básico de la POO de combinar datos y métodos en una clase para manejarlos. Un miembro estático permite que los datos de la clase, que no son específicos de una instancia individual, existan en el ámbito de la clase.

Dado que un miembro estático de la clase es independiente de la instancia, la referencia a él es la siguiente

class_name::variable

Esto es lo que tengo que hacer. mis miembros de la estructura eran independientes de la instancia.

Lo hice por analogía con las clases. ¿Lo ves?

 
hoz:

Necesito que el mis miembros de la estructura no dependían de una instancia de la estructura.


estructura A
{
int v;
};

estático A a;


?

 

para qué hacer algo? crear un objeto de clase global y ya está. (oy-yo-yo-yo - estructuras, entonces entenderás algo propio de nuevo y atacarás)

Pros:

1) menos texto

2) más portabilidad

3) si de repente necesitas otro objeto, no hay prohibiciones para su creación

4) posiblemente una gran cantidad de datos, pero esto es una cuestión para los desarrolladores.

Contras:

1) No me gusta referirme a los campos a través del nombre del objeto, lo quiero a través de la estática, entiéndanme todos.

 
sergeev:


estructura A
{
int v;
};

estático A a;


?

¿Por qué no se hace esto para las clases según la documentación? ¿Por qué saca cada miembro y lo inicializa detrás de la clase?