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
¡Vamos! Lo uso todo el tiempo.
¿Dónde? ¿En qué lugar y cómo?
Moderadores, perdón por repetir la pregunta. Realmente quiero obtener una respuesta.
¿Por qué reasignar intencionadamente un puntero pasado a una función? Por supuesto, habrá una fuga. Pero esto no es una "fuga clásica", sino un error clásico de trabajar con un puntero a un objeto.
Aquí no hay que crear un nuevo objeto, sino manejar el objeto externo cuyo puntero se pasó a la función.
¿Dónde? ¿En qué lugar y cómo?
Moderadores, perdón por repetir la pregunta. Realmente quiero obtener una respuesta.
¿Dónde? ¿En qué lugar y cómo?
Moderadores, perdón por repetir la pregunta. Realmente quiero obtener una respuesta.
Si entiendo bien la pregunta, declaramos la clase como un objeto usando new.
A continuación, utilice un punto para llamar a los métodos públicos de la clase a través del objeto creado.
Después de que se ejecuten todos los métodos llamados, limpiamos la memoria borrando el objeto creado delete.
Si he entendido bien la pregunta, declaramos la clase como un objeto utilizando new.
Luego llamamos a los métodos públicos de la clase a través del objeto creado, utilizando un punto.
Después de que se ejecuten todos los métodos llamados, limpiamos la memoria borrando el objeto creado delete.
No. Al principio pensé que era un parámetro de la función así - objeto pero no por referencia, pero hay un punto y coma al final. Si se trata de una creación normal de objetos en la declaración, ¿por qué está entre paréntesis? Así que por ahora sigue siendo el misterio del siglo.
No. Al principio pensé que era un parámetro de la función así - objeto pero no por referencia, pero hay un punto y coma al final. Si se trata de una creación normal de objetos en la declaración, ¿por qué está entre paréntesis? Así que por ahora sigue siendo el misterio del siglo.
¿Y por qué has reasignado deliberadamente un puntero pasado a una función? Por supuesto, habrá una fuga. Pero no es una "fuga clásica", sino un error clásico de manejo de un puntero a un objeto.
Aquí no es necesario crear un nuevo objeto, sino manejar el objeto externo cuyo puntero se pasó a la función.
No se trata de mi ejemplo, se trata de la implementación de los propios punteros en MQL - si no necesitas desreferenciarlos (¡y el puntero puede ser asignado a una instancia del objeto!), si en lugar de pasar un puntero puedes pasar una referencia al objetohttps://www.mql5.com/ru/forum/1111/page2471#comment_11796665
aquí no tenemos información detallada sobre dónde y cuándo apareció (CObj& obj) (& no es una operación de desreferenciación de punteros, sino de adquisición de un puntero GetPointer() )
Ok, no quiero desperdiciar información... Ya me lo he dicho, y lo repetiré una vez más en este foro - MQL no es C++, así es como se implementa - bueno, no tengo otras opciones
No se trata de mi ejemplo, se trata de la implementación de los propios punteros en MQL - si no necesitas desreferenciarlos (¡y el puntero puede ser asignado a una instancia del objeto!), si en lugar de pasar un puntero puedes pasar una referencia al objeto https://www.mql5.com/ru/forum/1111/page2471#comment_11796665
aquí no tenemos información detallada sobre dónde y cuándo apareció (CObj& obj) (& no es una operación de desreferenciación de punteros, sino de adquisición de un puntero GetPointer() )
Ok, no quiero desperdiciar ninguna información... Ya me lo he dicho, y lo repetiré una vez más en este foro - MQL no es C++, así es como se implementa - bueno, no tengo otras opciones
Estás siendo dramático, no hay complejidades ni confusiones.
Los paréntesis se deben a que se trata de una nota sobre el texto ))))
Así que ahí tienes.
Así:
void z(CObj * o){ }
Ni siquiera sólo puede, sino que es mejor, porque se puede llamar así:
z(GetPointer(obj));
Si pasas un puntero por referencia, necesitas otra variable para el puntero.
***
Y si hay que pasar un puntero a una función para crear un objeto en la función, así es como funciona:
Eso es básicamente todo lo que querías saber sobre OOP, pero tenías miedo de preguntar))