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
miré los resultados de mi batalla con el código de estilo OOP - hmmm... ¡excelente! ))))
Tengo una pregunta, pero en mi código, bueno, tres veces exactamente, uso una construcción como:
llama a todo en métodos privados, pero ¿hay un "método Jedi" para escapar en el código fuente de CheckPointer(m_order)==POINTER_INVALID
Pregunto por algún get / set
ningún problema especial, sino por así decirlo un capricho, o mientras que la sed de conocimiento de los métodos de POO en C++ aún no ha disminuido
Si la pregunta es "muchas letras", entonces !CheckPointer(mPtr), y si la llamada a la función, se inicializan todos los punteros a NULL en el constructor y se comparan con él en el código, sin olvidar al borrar ptr; ptr=NULL;
miré los resultados de mi batalla con el código de estilo OOP - hmmm... ¡excelente! ))))
Tengo una pregunta, pero en mi código, bueno, tres veces exactamente, uso una construcción como:
llama a todo en métodos privados, pero ¿hay un "método Jedi" para escapar en el código fuente de CheckPointer(m_order)==POINTER_INVALID
Pregunto por algún get / set
ningún problema especial, sino por así decirlo un capricho, o mientras que la sed de conocimiento de los métodos de POO en C++ aún no ha disminuido
Igor, mira este ejemplo, creo que es lo que preguntas.
Si la pregunta es "muchas letras", entonces !CheckPointer(mPtr), y si en una llamada a una función, se inicializan todos los punteros a NULL en el constructor y se comparan con él en el código, sin olvidar al borrar ptr; ptr=NULL;
Bueno y esto, para el azúcar:
No hay problemas especiales, pero por así decirlo un capricho, o mientras la sed de aprender métodos OOP en C++ no se ha apagado todavía.
Te recomiendo que inicialices todos los campos de la clase con valores por defecto en el constructor. La cuestión es que si quieres hacer esto:
void foo(){ CClass someClass; someClass.DoSomething(); }
nadie inicializará los campos de tu clase y habrá valores basura.
Y esto, por el azúcar:
No, casi he renunciado a las definiciones, simplemente no quiero envolver nada, como escribí hace un par de semanas - quiero ver código puro estilo OOP por ahora, evaluar la flexibilidad y las posibilidades
HH: Acabo de envolver los descendientes en define en la creación, para no escribir la misma inicialización en 3 líneas, es más fácil añadir métodos más tarde, es decir, en el código fuente en una línea hasta ahora
Igor, mira este ejemplo, creo que es lo que preguntas.
no, me refiero al equivalente en c# - operador ? ( operador null-join ), algo similar en la lógica que quiero ver en el estilo C++
UPD:
Recomiendo encarecidamente inicializar todos los campos de una clase con valores por defecto en el constructor. La cuestión es que si quieres hacer esto:
Si pides una macro, nadie inicializará los campos de tu clase y habrá valores basura.
eso es lo que hice, constructor con inicialización de cualquier cosa y todo en la clase base, los descendientes inicializan la clase base:
eso es exactamente lo que envolví en una macro, para no olvidarme de inicializar correctamente ))))
No, casi he renunciado a las definiciones, simplemente no quiero envolver nada, como escribí hace un par de semanas - quiero ver código puro estilo OOP por ahora, evaluar la flexibilidad y las posibilidades
ZS: sólo envolver descendientes en definir en la creación, no escribir la misma inicialización en 3 líneas, es más fácil añadir métodos más tarde, es decir, en el código fuente en una línea hasta ahora
no, me refiero al equivalente en c# - operador ? ( operador null-join ), quiero ver algo similar en la lógica al estilo de C++
Su rechazo al preprocesador es en vano. Junto con las plantillas son las herramientas más potentes. No parece haber un análogo del operador ? C++ es más duro en este sentido.
Sigo en una batalla por el estilo OOP puro, quiero aprender todas las técnicas OOP, mientras haya un activo en el foro ;)
Estoy al día con el preprocesador, pero ... Creo que no debo abusar, al menos, no es mi estilo, puedo meter la pata, y ciertamente no seré capaz de leer código con múltiples macrosustituciones, y como buscar errores... bueno, es más fácil reescribir - así que, no es necesario todavía
plantillas... Bueno, no me gusta lo que ofrecen los desarrolladores en SB, los he revisado todos, es difícil decir con qué propósito se incluyeron en SB, tal vez no ha llegado su momento
sobre la portación de plantillas C++ a MQL - es el momento, como la discusión mostró, que en la mayoría de los casos las plantillas C++ requieren un ajuste fino para MQL - es más fácil volver a .dll y no molestar a MQL ))))
Sigo en una batalla por el estilo OOP puro, quiero aprender todas las técnicas OOP, mientras haya un activo en el foro ;)
Estoy al día con el preprocesador, pero ... Creo que no debo abusar, al menos, no es mi estilo, puedo meter la pata, y ciertamente no seré capaz de leer código con múltiples macrosustituciones, y como buscar errores... bueno, es más fácil reescribir - así que, no es necesario todavía
plantillas... Bueno, no me gusta lo que ofrecen los desarrolladores en SB, los he revisado todos, es difícil decir con qué propósito se incluyeron en SB, tal vez no ha llegado su momento
sobre la portación de plantillas C++ a MQL - es el momento, como la discusión mostró, que en la mayoría de los casos las plantillas C++ requieren un ajuste fino para MQL - es más fácil volver a .dll y no molestar a MQL ))))
Usted mismo puede escribir las plantillas de esa manera))).
Yup ))))
He terminado de leer la ayuda y me he saltado el override, menos mal que todo está en macros, edita, bueno, exactamente en un copy-paste
UPD:
¡no lo es, salió para el control de permisos en sí, no es necesario el método público!
Y luego está esto, para el azúcar:
Quería escribir lo que solía tener en lugar de
fue así:
pero recuerda cómo comprobar las sustituciones de macros en MQL
2019.09.16 22:57:42.837 tst (EURUSD,H1) a = 1
2019.09.16 22:57:42.837 tst (EURUSD,H1) POINTER_INVALID = 0
2019.09.16 22:57:42.837 tst (EURUSD,H1) NULL = 0
y si la memoria no me falla, a principios de año era posible desimprimir NULL en el registro y obtener 0 allí , ahora aparece un error
Es decir, el comportamiento NULL como si no debe cambiar en el futuro, pero lo que se sustituye allí en lugar de NULL no está claro, probablemente si esta situación se comprueba ahora, como se escribeif(CheckPointer(m_order)==POINTER_INVALID)) ) es por así decirlo el código correcto))