OLP. Problemi di applicazione - pagina 16

 
Yedelkin:

Le domande sono davvero pesanti/corrette?

Per molto tempo ho usato il primo modo ("per riferimento"), ma mi piace molto l'idea dei descrittori. Solo che non so se vale la pena riscrivere tutte le classi a causa di questo.

Il primo modo funzionerebbe più velocemente. L'accesso tramite "descrittore" è più lungo.
 
mql5:
Il primo metodo funzionerà più velocemente. L'accesso tramite il "descrittore" richiede più tempo.
Grazie, è molto utile.
 

Un indizio,

Se una classe genitore ha 15 metodi, ma la classe figlia ha un metodo proprio e usa solo tre metodi ereditati dalla classe genitore, come sarà allocata la memoria per la classe figlia: in base alla necessità di allocare memoria per 16 metodi, o in base a solo 4 metodi effettivamente usati?

Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
  • www.mql5.com
Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5
 
Yedelkin:

Puoi darmi un suggerimento?

Ti stai riempiendo la testa con le cose sbagliate).
 
Yedelkin:

Un indizio,

Se una classe genitore ha 15 metodi, ma la classe figlia ha un metodo proprio e usa solo tre metodi ereditati dalla classe genitore, come sarà allocata la memoria per la classe figlia: in base alla necessità di allocare memoria per 16 metodi, o in base a solo 4 metodi effettivamente usati?

La memoria dell'oggetto è allocata per i dati, non per i metodi. Tutti i metodi (cioè le funzioni) sono memorizzati in una singola istanza nel codice eseguibile
 
stringo:
La memoria di un oggetto non è assegnata ai metodi, ma ai dati. Tutti i metodi (cioè le funzioni) sono memorizzati in una singola istanza nel codice eseguibile
Credo di aver capito. Se lo stesso metodo della classe padre è usato in 10 diverse classi figlie, sarà ancora memorizzato in una singola istanza nel codice eseguibile.
 

La ricerca non funziona. Forse mi sto ripetendo, ma la domanda è: un oggetto di classe può distruggere se stesso? Cioè, prima otteniamo un riferimento dell'oggetto a se stesso nell'oggetto della classe usando la parola riservata this, poi applichiamo l'operatore di cancellazione al descrittore dell'oggetto corrispondente (puntatore).

Qualcosa come:

pointer=GetPointer(this);
delete pointer;

O è meglio/preferibile cancellare un oggetto "esternamente" piuttosto che "internamente"?

 
GetPointer dà un puntatore di un tipo non cancellabile. L'oggetto non può cancellare se stesso. Ed è giusto :)
 
Yedelkin:

........: Un oggetto di classe può distruggere se stesso? Cioè, prima otteniamo un riferimento all'oggetto stesso nella classe oggetto usando la parola riservata this, poi applichiamo l'operatore di cancellazione al descrittore di oggetto corrispondente (puntatore).

Le tendenze suicide sono un sicuro segno di considerare la situazione in un contesto troppo ristretto).

Ho una contro-domanda: da dove chiamerete tutta questa roba? Scrivete un esempio più pratico, in modo da poter vedere il filo di esecuzione nel vostro programma. Come affronterete l'oggetto?

Lasciatemi spiegare. Se l'oggetto è statico (livello globale) o automatico (nello stack), non abbiamo bisogno di indirizzarlo. Il sistema di esecuzione lo eliminerà automaticamente quando sarà necessario.

Ma se l'oggetto è dinamico, significa che ha un riferimento esterno che deve essere azzerato quando si cancella.

Non ci sono altre opzioni.

 
MetaDriver:

Le tendenze suicide sono un sicuro segno di vedere la situazione in un contesto troppo ristretto. :)

...
Puoi insegnarmi a dire un linguaggio così volgare? :о)