È possibile implementare un modello singleton in MQL4. - pagina 6

 
ALXIMIKS:


O sei ottuso o sei ottuso, scusa la franchezza, scritto nero su bianco:

Noooo... Sei tu il lumacone!
Perché? Perché non sai leggere.

E ora citerò:

ALXIMIKS:

Dice che preservando i principi OOP e non creando variabili globali, possiamo contare il numero di alcune parole con un membro statico della classe,

(membro statico della classe)viene creato come una singola istanza e non dipende da quanti oggetti della classe vengono creati.

Ho bisogno della stessa cosa, solo da una struttura. O è difficile da capire? Quante volte è stata posta la domanda su come la struttura differisce dalla classe, e quante volte la risposta è stata che è quasi nulla. Non ci sono molte differenze. Almeno, almeno in C++ è così. Ho fatto questa domanda una volta su un forum dove ci sono molti professionisti. Perché c'è una tale differenza qui è una domanda.

Ho detto fin dall'inizio che avevo bisogno di queste variabili in un'unica istanza. O è difficile da leggere?

hoz:

Lasciatemi ripetere ciò di cui ho bisogno. C'è una struttura, i cui membri devono memorizzare i loro valori a runtime, ma quando si accede a qualsiasi metodo di qualsiasi classe che usa questa struttura, i membri possono essere modificati. Capisco che devono essere statici. Questi membri dovrebbero essere in una singola istanza. I membri di questa struttura saranno utilizzati da molte classi e anche dall'Expert Advisor stesso.

"ragazzo intelligente" nota la differenza? P.S. EVIDENZIATO IN ROSSO.
 

Per quanto riguarda la documentazione della distinzione di classe e della struttura leggi. Di nuovo per il "ragazzo intelligente"ALXIMIKS qui:

Le classi hanno una serie di differenze rispetto alle strutture:

  • La parola chiave class è usata nella dichiarazione;
  • Per impostazione predefinita, tutti i membri della classe hanno lo specificatore di accesso privato, a meno che non sia specificato diversamente. Il tipo di accesso predefinito per i membri della struttura è pubblico, a meno che non sia specificato diversamente;
  • gli oggetti di classe hanno sempre una tabella difunzioni virtuali, anche se nessuna funzione virtuale è dichiarata nella classe. Le strutture non possono avere funzioni virtuali;
  • l'operatorenew può essere applicato agli oggetti di classe; questo operatore non può essere applicato alle strutture;
  • le classi possonoereditare solo dalle classi; le strutture possono ereditare solo dalle strutture.

C'è qualcosa di statico?

 

Victor, è qualcosa! :-(

Ti è già stato detto come e cosa fare diverse volte.

Perché non cominci a darci dentro?

 
Perché, è meglio sputare bile e gridare che ci sono centinaia di idioti che guidano nella corsia opposta.
 
Leggendo e sperando in uno screenshot del modello (?).... per una collezione...
 
hoz:

Apre la documentazione qui e vede che:

Se le variabili di classe o di struttura non perdono i loro valori a runtime, perché sono dichiarate come statiche qui?

Sono nella sezione pubblica, si può dire che come in struttura...

Tornate ai vostri arieti.

Che cosa vuoi?

 
sergeev:

cosa vuoi?



Leggere il manus:

Non potendo dichiarare staticamente i membri della classe, sarebbe necessario dichiararlia livello di programmaglobale.

Stiamo parlando di classi e strutture. A giudicare da quello che ho scritto sopra, secondo la documentazione c'è una differenza tra una classe e una struttura, ma chiaramente non se si può o non si può usare il modificatore statico.

Отсутствие возможности объявлять статически члены класса привело бы к необходимости объявлять эти данные на глобальном уровне программы.

Esiste una cosa del genere? Sì, c'è!

Andare oltre:

Questo troncherebbe la relazione tra i dati e la sua classe, ed è anche incoerente con il paradigma OOP di base di combinare dati e metodi in una classe per gestirli. Un membro statico permette ai dati di classe, che non sono specifici di una singola istanza, di esistere nell'ambito della classe.

Poiché un membro statico della classe è indipendente dall'istanza, il riferimento ad esso è il seguente

class_name::variable

Ecco cosa devo fare. i miei membri della struttura sono indipendenti dall'istanza.

L'ho fatto per analogia con le classi. Vedi?

 
hoz:

Ho bisogno che il i miei membri della struttura non dipendevano da un'istanza della struttura.


struttura A
{
int v;
};

statico A a;


?

 

Perché fare qualcosa? Creare un oggetto globale di classe e basta. (oy-yo-yo-yo - strutture, poi capirai di nuovo qualcosa di tuo e attaccherai)

Pro:

1) meno testo

2) più portabilità

3) se avete improvvisamente bisogno di un altro oggetto, non ci sono divieti sulla sua creazione

4) forse una grande quantità di dati, ma questa è una domanda per gli sviluppatori.

Contro:

1) Non mi piace fare riferimento ai campi tramite il nome dell'oggetto, lo voglio via statica, mi capite tutti.

 
sergeev:


struttura A
{
int v;
};

statico A a;


?

Perché questo non viene fatto per le classi secondo la documentazione? Perché prende ogni membro e lo inizializza dietro la classe?
Motivazione: