Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 119

 
Alexey Navoykov:

E non si può andare in quello inferiore. Ecco perché tutto è chiaro.

Solo per favore con la possibilità di dichiarare classi-strutture in anticipo :)

class A;
class B{A*a;};
class A{};
 
fxsaber:

C'è meno flessibilità.

La flessibilità è un'interruzione dell'ordine di esecuzione dell'algoritmo? )

Ilya Malev:

Solo per favore con la possibilità di dichiarare classi-strutture in anticipo :)

Beh, non contraddice la logica. Proprio come una dichiarazione preliminare di una funzione. Se qualcosa è dichiarato prima, sarà anche inizializzato prima. Tutto è collegato logicamente.

 
Alexey Navoykov:

La flessibilità è una violazione dell'ordine di esecuzione dell'algoritmo? )

Ora OnTick può essere chiamato da qualsiasi punto del programma.

 
fxsaber:

OnTick può ora essere chiamato da qualsiasi punto del programma.

Se ne avete bisogno, potete dichiarare void OnTick(); proprio all'inizio in C++. Ma in generale l'ordine di dichiarazione delle funzioni è un metodo aggiuntivo di controllo della correttezza del codice. Per esempio, se in qualche plug-in inluder avete accidentalmente una chiamata OnTick() o, ancora peggio, OnInit(), va bene? Le librerie non devono vedere il vostro codice di lavoro.
 
Alexey Navoykov:

Beh, non contraddice la logica. Proprio come una dichiarazione precedente di una funzione. Se qualcosa è dichiarato prima, sarà anche inizializzato prima. Tutto è collegato logicamente.

Può contraddire la tua logica, ma non contraddice un secondo la logica comune. Perché tutto è garantito per essere inizializzato nel momento in cui inizia l'esecuzione del codice.

 
Ilya Malev:

Questo può contraddire la tua logica, ma non contraddice un secondo la logica convenzionale. Perché tutto è garantito per essere inizializzato nel momento in cui il codice viene eseguito.

Sembra che lei abbia frainteso il mio post. Dice che NON si contraddice)

 
Alexey Navoykov:

Sembra che lei non abbia letto attentamente il mio post. Ha detto di NON contraddire).

È vero, mi scuso, succede.

 
Alexey Navoykov:
Se ne avete bisogno, potete dichiarare void OnTick(); proprio all'inizio. Ma in generale l'ordine di dichiarazione delle funzioni è un modo aggiuntivo per controllare la correttezza del codice. Per esempio, se in qualche plug-in inluder OnTick() o peggio ancora - OnInit() viene chiamato accidentalmente, è un bene? Le librerie non devono vedere il vostro codice di lavoro.

Cosa fare quando si includono librerie, ognuna delle quali include le stesse librerie al suo interno?

 
fxsaber:

Cosa devo fare quando collego librerie che collegano internamente la stessa libreria?

Allora qual è il problema?
 
fxsaber:

Cosa fare quando si collegano librerie, ognuna delle quali collega la stessa libreria al suo interno?

#ifndef  MQL_TOOLS_H
#define  MQL_TOOLS_H

#endif

è strano che le direttive siano inserite ma non utilizzate

Motivazione: