Errores, fallos, preguntas - página 1874
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Si estás seguro de que el constructor debe ser privado, no hay otra manera.
Un puntero inteligente es un objeto que contiene un puntero simple y asegura que se elimina a tiempo.
Esta es la opción más sencilla.
Hay punteros inteligentes más complejos.
Está muy bien escrito sobre ellos en este libro: https://rsdn.org/res/book/cpp/cpp_real_programmers.xml
De hecho, es lógico que no funcione. No se puede hacer que el destructor de un puntero inteligente sea llamado antes que el destructor de la clase.
En lugar de especificar el error y dónde se produce, el compilador da un error interno no especificado #112
Gracias. He probado diferentes variantes, pero no funcionan.
En realidad, es lógico que no funcione. No se puede hacer que el destructor de un puntero inteligente sea llamado antes que el destructor de la clase.
Prueba de la siguiente manera:
No sé lo que estás haciendo, pero en MQL hacer el constructor privado sólo tiene sentido para el singleton.
Inténtalo de esta manera:
Gracias por el ejemplo detallado. Por desgracia, no tiene un constructor cerrado. No funciona así con uno cerrado, por supuesto.
Lo que necesito es que exista un objeto que esté oculto para todos. Al mismo tiempo, ningún otro objeto de este tipo podría ser creado de ninguna manera.
¿para que salga esto en el registro de ejecución?
¿Y es correcto que el __FUNCSIG__ del constructor/destructor da un tipo void?
Inténtalo de esta manera:
Necesito tener un objeto que esté oculto para todos. Al mismo tiempo, no se podía crear otro objeto de este tipo de ninguna manera.
Eso es lo que se llama:"Singleton".
¿Por qué dices que no te conviene?
Este es un ejemplo de un singleton.
¿Es correcto en tal caso
¿para que salga esto en el registro de ejecución?
¿Y es correcto que el __FUNCSIG__ del constructor/destructor da un tipo void?
Nunca lo hagas
¿Es correcto enviar esto al registro de ejecución en este caso?
¿Y es correcto que el __FUNCSIG__ del constructor/destructor salga de tipo void?
Sí, lo es.
Eso es lo que se llama:"Singleton".
¿Por qué dices que no te conviene?
Este es un ejemplo de un singleton.
Muchas gracias, ¡funciona!
Pero sigue siendo un misterio.
Foro sobre trading, sistemas de trading automatizados y comprobación de estrategias
Bichos, errores, preguntas
fxsaber, 2017.04.25 10:34
¿Por qué se llama al destructor del puntero inteligente antes que al destructor de la clase en tu versión y al contrario en la mía (aunque el constructor sea público)?