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

 
ALXIMIKS:

Me olvidé de la encapsulación. Y se puede borrar. Y aquí no hay punteros constantes). De todos modos, el singleton no es el mejor patrón.

Pero al menos hay algunas plantillas bonitas. Para las clases que probablemente sólo soñaría.


 
Scriptong:
Hablamos de los miembros estáticos de la clase. Además, en mi ejemplo m_a es un miembro privado. Y a estos miembros de la clase sólo se puede acceder desde las instancias de la clase. Por lo tanto, el valor de la variable no se puede cambiar en ninguna parte del código, excepto en las instancias de la clase. Se trata de escribir un código seguro que elimine muchos posibles fallos futuros.


bueno, puse public pensando en lo contrario, quitarlo cambiará en relación a la estática - desde dentro de la clase - ¡nada!

Sin embargo, alno poder declarar los miembros de la clase de forma estática, sería necesario declarar estos datosde forma global en el programa.

El tema quedó sin respuesta.

 
sergeev:

lo que se promociona es la frescura de mql.

no te molestes con la redacción

Parece que no hay que molestarse en leer la "documentación valiosa" en absoluto. Porque todo está mal. Y luego sale algún "listillo", como unos posts más arriba y se pone a discutir. Y la situación es que estoy muy atento. Si leo que se trata de un tipo de datos concreto, me lo tomo así. Si es un descuido, debería haberlo reconocido.
 
ALXIMIKS:

Alguien estaba gritando sobre el singleton

¿Hay planes para ampliar las plantillas a las clases y a la parametrización explícita? De lo contrario, me culpa y me dice que quiero demasiado.

P.D., sería más correcto declararla clase SomeClass dentro deSingleton (en este caso sólo sepuede crearuna instancia deSomeClass), pero es más obvio, aunque no correcto.


Lo he visto todo antes. Me preguntaba cómo aplicarlo específicamente a mi estructura. No sólo para verlo copiado de alguna fuente. Yo también puedo hacerlo)

Y en general, entendí, por consejo de Igor, que esto probablemente no me será útil. Así que no voy a hablar más de este patrón. Y en cuanto a la documentación dudosa, que difiere de la de C++, es obviamente cierto. Pero, de nuevo, no podemos hacer nada al respecto.

De momento, habrá que escribir lo máximo posible. Hasta que se disponga de una alternativa.

 

Estimado señor, ¿qué es lo que no funciona en este puesto?

ALXIMIKS 03.09.2014 15:34 #
hoz:

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

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


Eres un obtuso o una obtusa, perdona que te sea sincero, está escrito en blanco y negro:

Porejemplo, tenemos una claseCParser, destinada a analizar textos, ynecesitamos contarel número total de palabras y caracteres procesados.Basta con declarar losmiembros de la clase necesarioscomo estáticos e inicializarlos globalmente.Entonces todas las instancias de la claseutilizarán contadores comunes de palabras y caracteres cuando trabajen.

Dondequiera que haya una referencia a:

Las variables de clase o estructura pierden sus valores en tiempo de ejecución

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

(el miembro estático de la clase) se crea como una única instancia y no depende del número de objetos creados de una clase determinada.

 

¿Cómo los incomprensibles ataques a la estructura y a la clase y los problemas que te has inventado?

se refiere al hecho de que usted no entiende los fundamentos de la OOP y la duración de almacenamiento, como un concepto de montaje de las propiedades de las variables en general???

 
ALXIMIKS:

Estimado señor, ¿qué es lo que no funciona en este puesto?

Si no sabes leer, es tu problema. Aquí está una cita de lo que estaba preguntando. Si he escrito mal en algún sitio o he escrito algo mal con prisas, es porque los "listillos" como tú parlotean sin parar. Si sabes leer, aquí tienes un enlace permanente a un post específico para los especialmente despistadoshttps://www.mql5.com/ru/forum/152923/page6#987432

 
Qué es lo que falla en el correo ?????????????? No sé leer, responde a la pregunta si sabes leer)
 
struct A{
   static struct B{
      int x;
      int y;
   }Single;
};


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

¿No te has dado cuenta en dos días de que la estática se comporta de forma diferente en el conducto y en la clase?

las estructuras parecen tomadas de c y sólo un poco infladas en términos de herencia,

En cuanto a las clases, son de pleno derecho.

Por ello, no es necesario reservar espacio para una variable estática en las estructuras

struct A{
   static  int x;
};

pero hay que reservar plaza en las clases, de lo contrario no lo harás:

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