Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1334

Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Fue Alexey quien rehízo algo en el código que di. O tal vez lo subestimé, lo escribí "de rodillas" como un simple ejemplo para aclarar lo que ya no recuerdo.
Tal vez Alexei pueda decírnoslo).
La iteración del ciclo no terminará y no comenzará una nueva, sino que pasará al siguiente Si. La lógica cambiará.
Artyom Trishkin:
Это Алексей что-то переделывал в том коде, который я давал. А может и я недоглядел - писал "на коленке" в качестве простого примера для пояснения уже не помню чего.
Artem, ¿por qué se utiliza aquí la palabra clave this? Sin ella los métodos funcionarán con los miembros de la clase...
Alexey, gracias por una respuesta tan detallada.
El propósito de la variable ret en el fragmento de código dado no está claro...
¿Por qué se calcula si el método devuelve array[0] de todos modos?
P.D.
¿Por qué usar esto en un método de clase? Estamos trabajando con miembros de esta clase particular...
1. ¿para qué sirve la función CopyTime aquí?
2. Tal vez Artem responda sobre esto: ¿es una preferencia personal o es necesario?
1. ¿Para qué sirve la función CopyTime?
2. Tal vez Artem responda sobre esto - ¿es una preferencia personal o es necesario?
Si no te gusta CopyTime(), sustitúyelo por iTime(). No hay ninguna diferencia, lo principal es obtener el tiempo de la barra actual.
En mi cabeza recuerdo vagamente cuándo se escribió. Creo que yo también hice esta pregunta... Y si no me equivoco, esto asegura que la referencia es sólo a métodos locales en caso de que haya otros similares en otras clases. Y por supuesto, Artyom lo aclarará.
No. La condición allí se establece originalmente así, si el puntero se crea con éxito, entonces añadirlo a la lista. El soporte curvo está cerrado y si hay un fallo, la adición no se ejecutará. La lógica es un poco diferente con el operador continue pero el resultado es el mismo.
Sí, el resultado es el mismo, el interior es diferente. Creo que es más rápido con la continuación, aunque es el color y la lógica ....
Artem, ¿por qué se utiliza aquí la palabra clave this? Porque incluso sin ella, los métodos funcionarán con los miembros de la clase...
Lo harán. Lo uso porque quiero que lo hagan :) Indica explícitamente qué métodos de la clase se utilizan.
Si tienes dos clases, una como padre y otra como descendiente, y tienes dos métodos con el mismo nombre, pero no son virtuales por alguna razón, tienes que especificar explícitamente cuál usar.
Supongamos que la clase padre es CParent y la clase heredada es CInheritedy ambas tienen el método Method().
En este caso, si llamamos a un método Method() de una clase CParent, se llamará explícitamente a un método de la clase CParent - esto no es necesario aquí. Podemos llamar al método con o sin él.
Sillamamos a un métodoMethod() en una clase heredada de CInherited,también se llamará al métodode esa clase, ya que primero buscamos un método perteneciente a la clase desde la que lo llamamos.
Sillamamos a CParent::Method() en una clase CInherited, es el método de la clase padre el que será llamado de esta manera, porque hemos especificado explícitamente un método que pertenece a la clase padre mediante el operador de resolución de contexto.
Pero aún así, yo llamaría método Method() en una clase heredada CInherited con this - para estar seguro de que esta (this == "this") clase heredada sería llamada.
Hay otras explicaciones para usar esto. Tal vez alguien más experimentado en OOP nos pueda decir.
Sí, el resultado es el mismo, el interior es diferente. Creo que es más rápido con la continuación, aunque es el color y la lógica ....
No debería haber ninguna diferencia. A mí me parece más bonito: menos paréntesis y sangrías.
Pues sí, yo soy uno de esos "algunos", sobre todo cuando llamo a la función estándar desde la clase, siempre especifico el contexto global. Sólo porque se me ocurre escribir en esta clase un método con el mismo nombre que la función estándar, para no olvidar nunca lo que hace. Y ahí es donde :: es útil para llamar a la función estándar y esto es útil para llamar a mi método del mismo nombre.