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
El botón de compilación se ha perdido para siempre (hay que recargar el editor para recuperarlo)
Bueno, no exactamente... :) Me las arreglé para recuperarlo :)
Tienes que comentar la parte recursiva y pulsar el botón de compilación de depuración para hacerlo.
1. no es seguro "exponer" al exterior elementos internos que no son de la clase base (y en este ejemplo, no el atributo en sí, sino sólo un elemento del array!) Además, no es posible cambiar su valor.
Además, contradice el "espíritu" de la programación orientada a objetos: todo el trabajo con los datos del objeto debe realizarse dentro del objeto, mediante sus propios métodos...
3. ¿Qué tal si sólo se utiliza Setter para el atributo de datos?
4. El código se beneficiaría de la legibilidad.
5. al final esta "simplicidad" con el indexador de valores l hará que nadie, ni siquiera tú, entienda cómo funciona este código...
6. Pasarás más tiempo buscando errores que escribiendo Setter.
¿Qué es eso, humor negro?
1. Lo siento, - tonterías. Entiendo que la paranoia está de moda aquí, y es un argumento de chatarra para "por qué no debes hacer eso". No veo ningún peligro en ello. Si se mira con atención, es que cualquier nombre, después de todo, es una referencia. La indexación es sólo una extensión del concepto de nombre. Nada más. Prohibamos los nombres por completo. Por seguridad. Los enlaces son extremadamente peligrosos, ¿no?
2. Esa lógica contradice violentamente el espíritu de la programación orientada a objetos con C++, C#, Delphi y un par de docenas de lenguajes menos populares donde los indexadores funcionan bastante bien tanto a la derecha como a la izquierda. Además, no contradice el sentido común y mi espíritu por alguna razón.
Los indexadores están hechos para comunicarse con el entorno externo. Su función es exactamente la de una interfaz. Puedo encapsular y ocultar cualquier cosa, pero necesito índices para operar con objetos como arrays. De hecho, todas las matrices se organizan de alguna manera. Por ejemplo, las matrices dinámicas regulares de mql. ¿Podemos prohibir ponerlos a la izquierda del operador de asignación? Reemplacémoslos con una función como SetArrayValue(array, i, j, value); esto mejorará simultáneamente la legibilidad. Y la depuración también será mucho más fácil. Ugh...
3. ¿Qué tal si hacemos un indexador normal? La criada es genial, por supuesto, pero la reina sigue siendo mejor.
4. Aquí es donde realmente estoy empezando a perder la cabeza. ¿Es eso ilegible?
Eso es más legible, ¿no?
t.setDataElement(i, i*i);
Genial. Creo que voy a ir a recibir tratamiento.
5. Genial.
6. Lloré.
El indicador dejó de compilarse en la compilación 630:
c i error se puede eliminar poniendo un anuncio delante de for
¿Y qué hacer con'rates_total' - identificador no declarado?
Lo mismo en Win7 x64 y XP x32.
¿Puede decirme, por favor. ¿Se implementan MathMin() y MathMax() como funciones (conparámetros pasados por la pila) o como sustitución de macros(inline)? Según el libro de referencia son funciones.
El indicador dejó de compilarse en la compilación 630:
c i error se puede eliminar poniendo un anuncio delante de for
¿Y qué hacer con'rates_total' - identificador no declarado?
Lo mismo en Win7 x64 y XP x32.
Está claro que tienes un error en alguna parte de tu código. El bloque presentado compila sin errores si se declaran las variables limit, RT y se establece la condición if()
Naturalmente, no he dado el código, sino una estructura aproximada.
En la compilación 619 el indicador se compiló y funcionó bien.
En el 630 genera los errores mencionados.
El código es 100% inalterable. Obviamente, el trabajo del compilador ha cambiado.
¿Bicho?
El código siguiente genera una especie de bucle perpetuo en el compilador. Pulsar Cancelar
no funciona inmediatamente, pero cuando lo hace, recupera el control del editor.
El botón de Cancelar en sí no desaparece, pero tampoco es accesible.
El botón de compilación se ha perdido para siempre (hay que recargar el editor para recuperarlo)
Por favor, avisa. ¿Se realizan MathMin() y MathMax() como funciones (conparámetros pasados por la pila) o como macrosubstituciones(inline)? Según el libro de referencia, son funciones.
Por supuesto, las funciones, porque en el momento de la compilación se desconocen los valores de los argumentos. En mi opinión, la línea y las macros son diferentes.
P.D: en línea o no en línea no puedo decirlo.
Por supuesto, las funciones, porque en el momento de la compilación se desconocen los valores de los argumentos. En mi opinión, la línea y las macros son diferentes.
P.D.: no puedo decir si están en línea o no.
Una macro y una función en línea son efectivamente cosas diferentes. Pero no me refiero a eso. Este es un ejemplo cuando en el momento de la compilación se desconocen los valores de los argumentos
En el primer caso, el código debe ser pegado en la función actual (supongo) y en el segundo caso, la función es llamada con parámetros pasados por la pila (supongo). Pero a efectos de optimización, el compilador puede implementar también la segunda variante mediante sustitución. ¿Es así? No lo sé. Por eso he preguntado.