OLP. Problemi di applicazione - pagina 9

 

Ma non c'è bisogno di fare questo....

Si dovrebbe usare la virtualizzazione delle funzioni

P.S. E non si può costruire un programma normale con una conversione implicita dei tipi. È solo una variante... come l'operatore GoTo....

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
AlexSTAL:
2) L'importante è cancellarlo prima che il programma finisca... Ma se avete questo puntatore creato in una funzione, dovete preoccuparvi di salvarlo in una posizione globale...


È quello che ho pensato anch'io, l'array sembra essere globale, ma c'è una perdita. O non è solo l'array che deve essere presente, ma anche qualcos'altro?

 
Mi fai davvero ridere ))))
 
Interesting:

È quello che ho pensato anch'io, l'array sembra essere globale, ma c'è una perdita. O non è solo l'array, ma anche qualcos'altro?

Beh, potresti avere una perdita da qualche altra parte...

Ho centinaia di classi create in questo modo e non ho mai avuto alcuna perdita ovunque....

Provate un semplice esempio....

 
TheXpert:
Mi fai davvero ridere ))))
A volte fa bene... snervante ....
 
AlexSTAL:

Beh, potresti avere una perdita da qualche altra parte...

Ho centinaia di classi create in questo modo e non ho mai avuto alcuna perdita ovunque....

Prova un semplice esempio....

Penso di essermene liberato, mettendo questo codice nel blocco di disinstallazione di EA (nessun problema finora)

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

È finita così, molto incomprensibile.

È un mostro in una parola... :)

File:
Forum-2.mq5  11 kb
 

Comunque, come risultato della discussione sul problemahttps://www.mql5.com/ru/forum/3566/page6#comment_58280 ha inviato una domanda alla SR.

 
Yedelkin:

In generale, dopo una discussione sul problemahttps://www.mql5.com/ru/forum/3566/page6#comment_58280 ha inviato una domanda alla SR.

1. Non lo so, non lo so.

Penso che gli sviluppatori non si prenderanno la briga di sacrificare la funzionalità in nome della sicurezza (è la cosa giusta da fare in un certo senso).

Forse il modo proposto da Aleksander(AlexSTAL) avrebbe risolto il problema (non teniamo conto della sua natura un po' problematica).

Ma così facendo, otterremo al massimo l'accesso agli eventi e ai metodi dei discendenti (nel qual caso è improbabile che vengano utilizzate proprietà, variabili e cose simili non dichiarate nell'antenato).

Tuttavia, molto probabilmente dovremo sperimentare.


2. sulla base di ciò che abbiamo ora, possiamo fare qualcos'altro, vedo 2 opzioni:

а. Usare array specializzati che contengono oggetti di una sola classe (discendenti di un certo tipo);

In questo caso si può accedere a qualsiasi proprietà, metodo ed evento degli oggetti in un array (perché sono omogenei);

б. Se è necessario lavorare con un array di oggetti di diversi tipi, che sono discendenti di una classe base, dovrete creare array aggiuntivi per memorizzare ogni tipo di discendente.

Così, nell'array principale avremo accesso solo alla funzionalità comune a tutti gli oggetti (se non AUTOGEN e QUALDA), e negli array specializzati accesso alla funzionalità completa di ogni tipo di discendente.

Per come la vedo io, otterremo qualcosa come un database composto da diverse tabelle, con metodi di connessione uno-a-molti e molti-a-uno. In questo caso, però, ci sarà una questione di corretta sincronizzazione dell'intera faccenda. Inoltre, dovremo decidere in base a quale base saranno collegati tutti gli array (tabelle) del database improvvisato.

Il binding può essere basato su alcuni identificatori unici, per esempio, basati su puntatori o maniglie specializzate (come quelle usate nei tacchini).

PS

A proposito, penso che l'idea delle maniglie sia abbastanza buona (anche se si prendono i puntatori come base di tutto il lavoro con gli oggetti). Le maniglie dovrebbero permettere di distinguere l'oggetto unico da quelli simili o dall'intera lista di oggetti.

 
TheXpert:
Mi fai davvero ridere ))))
A volte mi spavento davvero, è un bene che a volte. :)