Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1335
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Non dovrebbe esserci alcuna differenza. Mi sembra semplicemente più carino - il codice è meno carico di parentesi e rientri.
Per un controllo (if) sì, ma nel codice ce ne sono due, e se ce ne sono molti, allora logica Se sì, contingente e nuova iterazione del ciclo, altrimenti azione A logica Se no allora azione altrimenti passare alla condizione successiva Se no. In questo caso, il corpo del ciclo andrà fino in fondo.
Per un controllo (if) sì, ma ci sono due nel codice, e se ci sono molti, poi la logica Se sì, continuare e una nuova iterazione del ciclo, altrimenti azione Una logica Se no allora azione altrimenti passare alla condizione successiva Se no. In questo caso, il corpo del ciclo andrà fino alla fine.
Non capisco niente, ma che sia così.
Lo faranno. Lo uso perché lo voglio :) Questo specifica esplicitamente quali metodi di classe sono usati.
Se avete due classi, una come genitore e una come classe ereditata, e hanno due metodi con lo stesso nome, ma non sono virtuali per qualche motivo, dovete specificare esplicitamente quale metodo usare.
Supponiamo che la classe padre sia CParent e la classe ereditata sia CInheritede che entrambe abbiano il metodo Method().
In questo caso, se chiamiamo un metodo Method() di una classe CParent, chiamerà esplicitamente un metodo della classe CParent - questo non è richiesto qui. Possiamo chiamare il metodo con o senza di esso.
Sechiamiamo un metodoMethod() in una classe ereditata CInherited,verrà chiamato anche il metododi quella classe, poiché cerchiamo prima un metodo appartenente alla classe da cui l'abbiamo chiamato.
Sechiamiamo CParent::Method() in una classe CInherited, è il metodo della classe genitore che sarà chiamato in questo modo, perché abbiamo esplicitamente specificato un metodo che appartiene alla classe genitore tramite l'operatore di risoluzione del contesto.
Ma comunque chiamerei il metodo Method() nella classe CInherited conindicazione this - per essere sicuri che il metodo di questa (this == "this") classe ereditata sarà chiamato.
Ci sono altre spiegazioni per usarlo. Forse qualcuno più esperto di OOP può dircelo.
Artem, grazie mille per una risposta così completa, che cambia in meglio l'atteggiamento verso OOP).
Come posso aprire un conto live?
1. Scegliere un broker.
2. Scegli una piattaforma, MT4 o MT5.
3. Apri un conto live con il broker.
Beh, sì. Io sono una di quelle "alcune persone", specialmente quando chiamo una funzione standard da una classe, mi assicuro di specificare il contesto globale. Solo perché posso pensare di aggiungere un metodo in quella classe con lo stesso nome della funzione standard - così non dimenticherò mai cosa fa. Ed è quando hai bisogno di :: per chiamare una funzione standard, e questo - per chiamare il mio metodo con lo stesso nome.
Artem, smentisce già la seconda parte dell'espressione "necessario - non necessario". È necessario, significa che è necessario. Non c'è nessuna obiezione...
Ciao
Come calcolare la distanza in pip dal prezzo corrente all'ordine pendente limite più vicino. Sono interessato a un codice già pronto.
Per un controllo (if) sì, ma ci sono due nel codice, e se ci sono molti, poi la logica Se sì, continuare e una nuova iterazione del ciclo, altrimenti azione Una logica Se no allora azione altrimenti passare alla condizione successiva Se no. In questo caso il corpo del ciclo andrà fino in fondo.
Per me, l'opzione preferita è
o questo
Un'altra variante
L'altra variante è al limite dell'idiozia.
Ma questa è una questione di gusti. Quello che piace a uno.
Per quanto ho capito, questo modo era usato quando l'operatore if controllava TUTTE le condizioni dall'inizio alla fine. È stato giustificato dal fatto che se la prima condizione non è soddisfatta, non dovrete controllare le condizioni seguenti. Ora tutte le condizioni dopo quella che non è stata soddisfatta non vengono controllate. E le scale di queste condizioni non sono più necessarie, rimane solo un'abitudine.
Artyom, questo già smentisce la seconda parte dell'espressione "non dovrebbe". Se devo farlo, devo farlo. Nessuna obiezione...