Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1334
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
È stato Alexey che ha rifatto qualcosa nel codice che ho dato. O forse l'ho sottovalutato - l'ho scritto "in ginocchio" come semplice esempio per chiarire ciò che non ricordo più.
Forse Alexei può dircelo).
L'iterazione del ciclo non finirà e non ne inizierà una nuova, ma passerà al prossimo Se. La logica cambierà.
Artyom Trishkin:
Это Алексей что-то переделывал в том коде, который я давал. А может и я недоглядел - писал "на коленке" в качестве простого примера для пояснения уже не помню чего.
Artem, perché si usa la parola chiave this qui? Senza di essa i metodi funzionano con i membri della classe...
Alexey, grazie per una risposta così dettagliata.
Lo scopo della variabile ret nel frammento di codice dato non è chiaro...
Perché viene calcolato se il metodo restituisce comunque l'array[0]?
P.S.
E perché usare questo in un metodo di classe? Stiamo lavorando con i membri di questa particolare classe...
1. a cosa serve la funzione CopyTime?
2. Forse Artem risponderà su questo - è una preferenza personale o è necessario?
1. a cosa serve la funzione CopyTime?
2. Forse Artem risponderà su questo - è una preferenza personale o è necessario?
Non ti piace CopyTime(), sostituiscilo con iTime(). Non c'è differenza, l'importante è ottenere il tempo della barra corrente.
Nella mia testa ricordo vagamente quando è stato scritto. Penso di aver fatto anch'io questa domanda... E se non mi sbaglio, questo assicura che il riferimento sia solo ai metodi locali nel caso in cui ce ne siano di simili in altre classi. E naturalmente, Artyom chiarirà.
No. La condizione lì è originariamente impostata in questo modo, se il puntatore viene creato con successo, allora aggiungilo alla lista. La staffa della curva è chiusa e se c'è un errore, l'aggiunta non sarà eseguita. La logica è un po' diversa con l'operatore continue ma il risultato è lo stesso.
Sì, il risultato è lo stesso, dentro è diverso. Penso che sia più veloce con la continuazione, anche se è il colore e la logica ....
Artem, perché la parola chiave this è usata qui? Perché anche senza di essa, i metodi funzionano con i membri della classe...
Lo faranno. Lo uso perché voglio che lo facciano :) Indica esplicitamente quali metodi di classe vengono utilizzati.
Se avete due classi, una come genitore e una come discendente, e avete due metodi con lo stesso nome, ma non sono virtuali per qualche motivo, dovete specificare esplicitamente quale 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() in una classe ereditata CInherited con questo - per essere sicuri che questa (this == "questo") classe ereditata sarebbe stata chiamata.
Ci sono altre spiegazioni per usarlo. Forse qualcuno più esperto di OOP può dircelo.
Sì, il risultato è lo stesso, dentro è diverso. Penso che sia più veloce con la continuazione, anche se è il colore e la logica ....
Non dovrebbe esserci alcuna differenza. Mi sembra semplicemente più carino - meno parentesi e rientri.
Beh, sì. Io sono uno di questi "alcuni", in particolare, quando chiamo una funzione standard dalla classe, specifico sempre il contesto globale. Solo perché posso pensare di scrivere in questa classe un metodo con lo stesso nome della funzione standard - così non dimenticherò mai cosa fa. Ed è qui che :: è utile per chiamare la funzione standard e questo è utile per chiamare il mio metodo con lo stesso nome.