Chiesto in privato cosa significa questo. Si è precipitato sul forum per rispondere, poiché ho trovato un esempio utile che porta chiarezza.
A proposito, se parli inglese, è molto utile cercare su Google tale domanda in inglese, non in MQL, ma in C++. Ad esempio così
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Ci saranno un sacco di link a forum di programmazione pura, e C++ è abbastanza simile a MQL
Ho tradotto i commenti in russo e ho fatto alcuni aggiustamenti per la compatibilità con MQL. Allego lo script qui sotto, basta compilarlo e tutto diventerà chiaro.
La documentazione non fa chiarezza?
Un metodo con il modificatoreconst è chiamato costante e non può modificare i membri impliciti della sua classe. La dichiarazione di funzioni di classe costanti e di parametri costanti è chiamatacontrollo di const-correctness. Con questo controllo si può essere sicuri che il compilatore terrà traccia dei valori invariati degli oggetti e genererà un errore in fase di compilazione in caso di violazione.
Il modificatoreconst dovrebbe essere posto dopo l'elenco degli argomenti all'interno della dichiarazione di classe. La definizione al di fuori di una classe dovrebbe anche includere il modificatoreconst:
Un ulteriore argomento per usare il controllo di integrità è che il compilatore fa delle ottimizzazioni speciali, ad esempio mettendo un oggetto persistente in memoria di sola lettura.
Unafunzione statica non può essere definita con il modificatoreconst, perché questo modificatore garantisce che i membri dell'istanza rimangono invariati quando tale funzione viene chiamata. Ma, come detto sopra, una funzione statica per definizione non può accedere a membri di classe non statici.
https://www.mql5.com/ru/docs/basis/oop/staticmembers
Inoltre, secondo me, non hai presentato l'esempio più riuscito di composizione di una struttura (prima i metodi, poi i dati dei membri). E, per questo, è meglio avvolgere tutto in una classe piuttosto che in una struttura, poiché le strutture sono di solito usate come unione di dati (senza metodi).
- www.mql5.com
La documentazione non chiarisce le cose?
https://www.mql5.com/ru/docs/basis/oop/staticmembers
E secondo me, non hai fornito il miglior esempio di mettere insieme una struttura (prima i metodi, poi i dati dei membri). E, per questo, è meglio avvolgere il tutto in una classe piuttosto che in una struttura, poiché le strutture sono di solito usate come unione di dati (senza metodi).
Contiene
Mi sono ricordato che era scritto da qualche parte in un documento, ma non sono riuscito a trovarlo. Ho copiato un esempio da stackoverflow. Dove mettere i dati è una questione personale del programmatore, anche se io lo metto all'inizio. Se usare strutture o classi dipende dal programmatore )))
Entrando in
Mi sono ricordato che era scritto da qualche parte nel documento, ma non l'ho trovato sul posto. Ho rubato un rapido esempio da stackoverflow. Sta al programmatore decidere dove mettere i dati, anche se io stesso li ho messi all'inizio. Se usare strutture o classi dipende dal programmatore ))))
Si può dire "una questione privata" di molte cose in questo modo. Ma sei tu che lo stai spiegando a qualcuno e non di persona ma pubblicamente. E il tuo "affare privato" contraddice un buon stile di programmazione. E la persona a cui lo state spiegando, e molti altri utenti possono prenderlo come un buon stile, cosa che non è.
E sulla persona che ha voluto (o forse guidato) il corso qui, un tale "bloop, bloop, bloop" dice molto.
Quali membri sono espliciti e quali impliciti?
Apparentemente, in questo contesto, questi sono i membri che chiamano il metodo. O, altrimenti, sono i membri a cui si può accedere tramite questo dal metodo.
In C++, questo significa che un metodo non può cambiare i membri della classe, eccetto i membri dichiarati mutabili.
Poiché in MQL difficilmente ci si può aspettare questo, significa che un metodo non può cambiare un oggetto in linea di principio.
In C++, questo significa che un metodo non può cambiare i membri della classe, eccetto i membri dichiarati mutabili.
Poiché in MQL difficilmente ci si può aspettare questo, significa che un metodo non può cambiare un oggetto in linea di principio.
Un metodo costante non può cambiare solo l'oggetto che lo ha chiamato.
È un errore di battitura?
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Fatta una domanda in privato, cosa significa. Ho trovato un esempio utile sul forum che aiuta a chiarirlo.
A proposito, se parlate inglese è molto utile cercare su Google tale domanda in inglese, non in MQL, ma in C++. Ad esempio così
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Ci saranno un sacco di link a forum di programmazione pura, e C++ è abbastanza simile a MQL
Ho tradotto i commenti in russo e ho fatto alcuni aggiustamenti per la compatibilità con MQL. Sto allegando lo script qui sotto, compilatelo e tutto diventerà chiaro.