OLP. Problemas de aplicación - página 9

 

Pero realmente no es necesario hacer esto....

Debe utilizar la virtualización de funciones

P.D. Y no se puede construir un programa normal con conversión de tipos implícita. Es sólo una variante... como el operador GoTo....

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
AlexSTAL:
2) Lo principal es borrarlo antes de que termine el programa... Pero si tienes este puntero creado en una función, tienes que ocuparte de guardarlo en una ubicación global...


Eso es lo que yo también pensé, el array parece ser global, pero hay una fuga. ¿O no es sólo la matriz lo que tiene que estar ahí, sino también algo más?

 
Realmente me haces reír ))))
 
Interesting:

Eso es lo que yo también pensé, el array parece ser global, pero hay una fuga. ¿O no es sólo la matriz, sino algo más?

Bueno, puede que tengas una fuga en otra parte...

Tengo cientos de clases creadas de esta manera y nunca he tenido ninguna fuga en ningún sitio ....

Intenta un simple ejemplo....

 
TheXpert:
Realmente me haces reír ))))
A veces es bueno para ti... un nervio ....
 
AlexSTAL:

Bueno, puede que tengas una fuga en otro lugar...

Tengo cientos de clases creadas de esta manera y nunca he tenido ninguna fuga en ningún sitio ....

Pruebe con un simple ejemplo....

Creo que me he librado de él, poniendo este código en el bloque de desinstalación de EA (sin problemas hasta ahora)

  for (int i=0; i<ArraySize(ArrShapes);i++)  
  {
  ArrShapes[i].Free(ArrShapes[i]);
  }
 

Terminó así, muy incomprensible.

Es un monstruo en una palabra... :)

Archivos adjuntos:
Forum-2.mq5  11 kb
 

De todos modos, como resultado de la discusión sobre el problemahttps://www.mql5.com/ru/forum/3566/page6#comment_58280 envió una solicitud al SR.

 
Yedelkin:

En general, tras un debate sobre el problemahttps://www.mql5.com/ru/forum/3566/page6#comment_58280 envió una solicitud a la RE.

1. No lo sé, no lo sé.

Creo que los desarrolladores no se tomarán la molestia de sacrificar la funcionalidad en aras de la seguridad (es lo correcto en un sentido).

La forma propuesta por Aleksander(AlexSTAL) podría haber resuelto el problema (no tengamos en cuenta su carácter algo problemático).

Pero al hacerlo, en el mejor de los casos obtendremos acceso a los eventos y métodos de los descendientes (en cuyo caso es poco probable que se utilicen las propiedades, variables y demás cosas no declaradas en el ancestro).

Sin embargo, lo más probable es que tengamos que experimentar.


2. sobre la base de lo que tenemos ahora, podemos hacer algo más, veo 2 opciones:

а. Utilizar matrices especializadas que contengan objetos de una sola clase (descendientes de un determinado tipo);

En este caso puedes acceder a cualquier propiedad, método y evento de los objetos del array (porque son homogéneos);

б. Si es necesario trabajar con un array de objetos de diferentes tipos, que son descendientes de una clase base, tendrás que crear arrays adicionales para almacenar cada tipo de descendiente.

Así, en el array principal tendremos acceso sólo a la funcionalidad común para todos los objetos (si no es AUTOGEN y QUALDA), y en los arrays especializados acceso a la funcionalidad completa de cada tipo de descendientes.

Según entiendo, obtendremos algo así como una base de datos formada por varias tablas, con métodos de conexión uno a muchos y muchos a uno. En este caso, sin embargo, habrá una cuestión de sincronización adecuada de todo el asunto. Además, tendremos que decidir en base a qué se vincularán todas las matrices (tablas) de la base de datos improvisada.

La vinculación puede basarse en algunos identificadores únicos, por ejemplo, basados en punteros o asas especializadas (como las utilizadas en los pavos).

PS

Por cierto, creo que la idea con las asas es bastante buena (incluso si se toman los punteros como base de todo el trabajo con objetos). Los asideros deben permitir distinguir el objeto único de los similares o de toda la lista de objetos.

 
TheXpert:
Realmente me haces reír ))))
A veces me estoy volviendo loco, es bueno que a veces. :)
Razón de la queja: