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
De alguna manera, la cuestión de si la multipropiedad afecta o no a la velocidad de procesamiento del código por parte del procesador(2011.04.04 21:58) queda completamente desatendida.
Si la pregunta parece incorrecta, tonta, etc. - entonces escribe así.
De alguna manera, la cuestión de si la multipropiedad afecta o no a la velocidad de procesamiento de código del procesador(2011.04.04 21:58) queda completamente desatendida.
Si la pregunta parece incorrecta, tonta, etc. - sólo escríbelo así.
La pregunta es perfectamente lógica, la respuesta es no, no lo hace.
¡Ya lo tengo! Bueno, ¡me has dado muchos ánimos! Ahora voy a duplicar el placer de estampar métodos anidados :)
Urain, ¡gracias por el ejemplo! Mientras no tengas experiencia en programación, a veces es difícil adivinar por ti mismo para comprobar y escribir un código correcto para ello. Y aquí todo es claro y comprensible.
Pregunta. ¿Puede una instancia de una clase hija borrarse a sí misma? En otras palabras, ¿funcionará esta construcción?
El compilador no se queja de esta construcción.Pregunta. ¿Puede una instancia de una clase hija borrarse a sí misma? En otras palabras, ¿funcionará esta construcción?
El compilador no se queja de esta construcción.Si lo he entendido bien, no me gustan los punteros (y no los uso a menudo, sobre todo en MQL5), el hijo debería ser así
Por lo tanto, la aplicación tendría el siguiente aspecto
PS
¿Es un error (o una característica del compilador) que el compilador pasó por alto?
Por supuesto, podemos asumir que el descendiente pasó la clase que necesitamos, pero las estructuras y la funcionalidad de las dos clases podrían ser muy diferentes. ¿Qué ocurre entonces?
C_A *pointer=new C_B;
Y al utilizar el código inicial así, se produce una fuga de memoria en absoluto, aunque se han pasado todas las comprobaciones del compilador (y ni siquiera ha mencionado ningún posible problema)
Este es el resultado (entiendo que el objeto puntero no se borra correctamente por la fuga de memoria):
Si lo entiendo bien, no me gustan los punteros (y no los uso a menudo, especialmente en MQL5), entonces el descendiente debería ser así
C_A *pointer=new C_B;
Esta idea la saqué del tetris, y me funciona muy bien. Por supuesto, no sería correcto utilizar esta línea sin más, pero es muy adecuada para fines similares a los que se resuelven en el tetris.De alguna manera, la cuestión de si la multipropiedad afecta o no a la velocidad de procesamiento de código del procesador(2011.04.04 21:58) queda completamente desatendida.
Si la pregunta parece incorrecta, tonta, etc. - sólo escríbelo.
La respuesta a la lógica: cuanto más simples y lógicas sean las primitivas, más eficiente será el optimizador.
Lo principal es no exagerar :)
Se ha modificado ligeramente el código del script:
Salidas
Mira. Declaré el método void Del(C_A *p) con el modificador public en la clase padre. Así que la clase hija ha heredado completamente este método. Así no necesito volver a declarar el mismo método en la clase hija. En cuanto a esta idea, la saqué del tetris y me funcionó muy bien. Por supuesto, no sería correcto utilizar esta cadena sin más, pero es muy adecuada para fines similares a los que se resuelven en el tetris.
Incluso asumiendo que void Del(C_A *p) en el ancestro es suficiente para borrar cualquier puntero descendiente, no veo el sentido de usar
C_A *pointer=new C_B;
PS
El único lugar donde puedo imaginar la necesidad de tal enfoque es la creación de una matriz de objetos diversos que son descendientes de la misma clase (alternativamente, pasando un parámetro del tipo de clase "base" en una función o procedimiento).