OOP, modelli e macro in mql5, sottigliezze e usi - pagina 4

 
Alexey Navoykov:
Io l'ho già fatto - e non me ne pento neanche un po' ) Ma tu, vedo, provi un grande piacere a costringerti con le restrizioni artificiali imposte da MQ. Forse sei un masochista? ) Sei così insistente nel convincermi che è necessario. Non è necessario, è forzato - questo è il punto.

Sembri più un masochista. Invece di seguire le regole della lingua hai passato il tempo a scrivere una stampella di cui nessuno ha bisogno, cercando di far passare la tua opinione come un assioma, nonostante io non sia l'unico a dirti dei tuoi errori. E come se non bastasse, state cercando di far passare il vostro mestiere per sottigliezze e trucchi. E le sottigliezze e le caratteristiche risultano essere l'osservanza delle regole descritte nella documentazione.

Prenditela con gli sviluppatori di varietà del linguaggio C. Ascoltate l'indirizzo del link dove sarete inviati. E qui pensate che sia accettabile pretendere qualcosa dagli sviluppatori in cambio della vostra ignoranza.

 
Alexey Viktorov:

Sembri più un masochista. Invece di seguire le regole della lingua, hai passato il tuo tempo a scrivere una stampella che nessuno vuole.

Mezza giornata, spesa per scrivere una stampella, sarà ripagata dal tempo e dalle cellule nervose risparmiate, più la comodità del codice (lo scrivo come mi serve).

cercando di far passare la tua opinione come assiomatica, nonostante il fatto che non sono l'unico a dirti dei tuoi errori.

...

Portatelo agli sviluppatori di linguaggi C.

Errori? Hai mai programmato in un vero linguaggio di programmazione? Non credo. Se non ne siete a conoscenza, MQL è scritto in modo simile al C++. Quindi in questo caso gli sviluppatori sono scivolati e non hanno tenuto conto di alcuni dettagli e hanno creato un bug che non può essere trovato nei normali linguaggi di programmazione.

E qui considerate accettabile pretendere qualcosa dagli sviluppatori invece della vostra ignoranza.

Sei di nuovo confuso. Non chiedo più nulla.
 
Alexey Navoykov:

Passare mezza giornata a scrivere una stampella mi ripagherà in futuro con un sacco di tempo e cellule nervose risparmiate, più la comodità del codice (lo scrivo come voglio io).

Errori? Hai mai programmato in un vero linguaggio di programmazione? Non credo. Se non ne siete a conoscenza, MQL è scritto in modo simile al C++. Quindi in questo caso gli sviluppatori sono scivolati e non hanno tenuto conto di alcuni dettagli e hanno creato un bug che non può essere trovato nei normali linguaggi di programmazione.

Sei di nuovo confuso. Non pretendo nulla.

Perché gli sviluppatori di mql dovrebbero imitare qualcuno?

 
Alexey Viktorov:

Perché mai gli sviluppatori di mql dovrebbero voler emulare qualcuno?

Guardate la documentazione, c'è scritto tutto nero su bianco.
 
Alexey Viktorov:

Prenditela con gli sviluppatori delle varianti del linguaggio C. Ascoltate l'indirizzo del link a cui sarete inviati. E qui pensate che sia accettabile pretendere qualcosa dagli sviluppatori in cambio della vostra ignoranza.

Cosa c'entra la famiglia del linguaggio C? È solo in µl. Questo perché mk ha deciso di fare la compilazione multi-pass per accontentare chi vuole.

void start() {
    int i = f();
}
int f() {return 0;}

Cosa che non avresti dovuto fare.

ZS:

In generale ho sentito qui più di una volta che c++ è un colpo al piede, il 70% non si usa affatto, faremo un µl comodo e sicuro. Ma sembra più che dobbiamo reinventare questo c++ "storto" per una codifica comoda :)

 
Alexey Navoykov:

Quindi lei sostiene l'uso massiccio di variabili globali, se ho capito bene. Allora è improbabile che io e lei ci capiamo.

Inoltre, la funzione stessa può essere un modello. E l'istanza creata, rispettivamente, dovrebbe essere parametrizzata dallo stesso tipo:

La tua azione?

Non che io sia un sostenitore, ma non vedo nulla di strano nel dichiarare un'istanza di una classe una volta per tutte, anche se non è necessario per nulla se non per la facilità d'uso delle variabili statiche. E quando ultimamente mi sono trovato di fronte a questo bug con le statiche dentro le funzioni, ho deciso di non dichiararle mai in quel modo (dentro le funzioni) e non c'è nessun problema.

 
pavlick_:

Questo perché mc ha deciso di fare una compilazione a più passaggi a beneficio di coloro che vogliono fare

Cosa che non avrebbero dovuto fare.

Ho paura che non capisca cosa vuoi dire)
 
pavlick_:

Cosa c'entra la famiglia del linguaggio C? Questa è l'unica cosa che non va in Mcl. Questo perché µ ha deciso di fare la compilazione multipass per coloro che la vogliono così.

Cosa che non avresti dovuto fare.

ZS:

In generale ho sentito qui più di una volta che c++ è un colpo al piede, il 70% non si usa affatto, faremo un mcl comodo e sicuro. Ma sembra più che dobbiamo reinventare questo c++ "storto" per una codifica comoda :)

Quindi stai dicendo che non puoi inizializzare una variabile con una funzione? Ho capito bene?

 
Ilya Malev:

Non che io sia un sostenitore, ma non vedo nulla di strano nel dichiarare un'istanza di una classe subito dopo la sua descrizione, anche se non è necessario per nulla se non per un uso conveniente delle variabili statiche. E quando recentemente mi sono trovato di fronte a questo bug con le statiche all'interno delle funzioni, ho deciso di non dichiararle mai in quel modo (all'interno delle funzioni) e non c'è nessun problema.

Beh, è di questo che ho iniziato a parlare qui. Avevo intenzione di sostituire anche tutte le statiche con le globali (anche se è difficile, ovviamente). Ma come mostrato sopra, non funzionerà con i modelli. Anche con le macro. E io uso tutto ampiamente, quindi ho fatto la mia implementazione. Anche se non risolve tutti i problemi. Gli array dinamici non possono ancora essere inizializzati, anche i tipi costanti, quindi devono inequivocabilmente essere globalizzati.
 
Alexey Viktorov:

Quindi stai dicendo che non puoi inizializzare una variabile con una funzione? Ho capito bene?

No, non è quello che sto dicendo. In plus statico un membro della funzione sarà inizializzato la prima volta che entra nella funzione. Riguardo al multi-passaggio - ero di fretta, ho ingenuamente pensato che µl lo avrebbe permesso

int q = w;
int w;
Motivazione: