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

 
ALXIMIKS:

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

Y también se puede escribir "todo en uno" obviando clases y estructuras. Incluso en el procedimiento. Escribe como quieras, ¿qué quieres de mí?

Intenta enseñar a Straustrup un poco más. Escríbele una carta diciendo que se ha inventado un montón de cosas innecesarias. Cada uno elige el suyo, y cada uno escribe como quiere. Me siento cómodo escribiendo cuando todo está dividido según ciertas tareas. Distribuir todo y llamarlo obra. Pero cuando estas piezas de código se convierten en una "caja negra" es muy conveniente. Especialmente cuando no hay mucho extra como dices:

ALXIMIKS:

4) tal vez una gran pila de datos, pero eso es una cuestión para los desarrolladores.

Por cierto, los desarrolladores no tienen nada que ver. No se trata de eso.

Sin embargo, estoy esperando mi pregunta. Me pregunto por qué hay tanta diferencia cuando no la hay según la documentación...

 
hoz:
¿Por qué no se hace esto para las clases según la documentación? ¿Por qué saca e inicializa cada miembro por clase?

de nuevo zorowo. :)

¿Qué quieres que hagamos?

 
_new-rena:
Leyendo y esperando una captura de pantalla del patrón (?).... para una colección...

Lo siento, hay una programación de "solteros"... se ha ido.
 

aunque la ayuda es un poco cursi, porque sigo sin entender la frase

No poder declarar los miembros de la clase estáticamente requeriría declarar estos datosglobalmente en el programa.

quien lo entendió, por favor, explique lo que quiso decir?

 
keekkenen:

que entienden, me dicen lo que están tratando de decir?

es para promover la frescura de mql.

no te molestes en la redacción.

 
keekkenen:

El hecho deno poder declarar los miembros de la clase de forma estática haría necesario declarar estos datosde forma global en el programa.

que entienden, explique lo que quiere decir con eso?


En lugar de:

class CClass
{
   static int m_a;
};

sólo tendría que ser utilizado:

int g_a;

Y en el primer caso, m_a sólo está disponible en instancias de la clase CClass, y en el segundo, desde cualquier parte del programa.

 
Scriptong:


En lugar de:

tendría que ser utilizado solamente:

Y en el primer caso, m_a sólo está disponible en las instancias de la clase CClass, mientras que en el segundo, está disponible desde cualquier parte del programa.


No veo una ventaja/diferencia entre

class CClass
{
   static int m_a;
};

Antes de

class CClass
{
   public:
    int m_a;
};

no es la redacción, sino lo que se quiere decir con ella...

 
keekkenen:

No veo una ventaja/diferencia entre

El primero es el equivalente a un nimespacio.
 
keekkenen:


No veo una ventaja/diferencia entre

Hablamos de los miembros estáticos de la clase. Además, en mi ejemplo m_a es un miembro privado. Y tales miembros de la clase son accesibles sólo 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.
 

Alguien estaba gritando sobre el singleton

class SomeClass{
public:
   int a;
};

class Singleton{
protected:
        static SomeClass* _self;
        Singleton(){}
        virtual ~Singleton(){}   
public:
        static SomeClass* Instance(){
                if(_self == NULL){
                        _self = new SomeClass();
                }
                return _self;
        } 
        static void DeleteInstance(){
                        delete _self;
        }
};
 
SomeClass* Singleton ::_self = NULL;

void OnStart()
{       
        SomeClass* some_ptr = Singleton::Instance();
        Alert(some_ptr.a);                              // Alert(Singleton::Instance().a); // або просто так
        Singleton::DeleteInstance();
}

¿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.