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
Riferimento tecnico. Un esempio di "meccanismo di avvolgimento" quando si lavora con le classi (per non doverlo cercare):
https://www.mql5.com/ru/forum/3555/page3#comment_57315
Domanda. Il nuovo operatore. Il manuale di riferimento afferma che new è un operatore; tuttavia, negli esempi, viene spesso fatto un controllo dopo aver usato questo operatore per assicurarsi che sia uguale a NULL. Per esempio:
Si dice anche che"NULL può essere paragonato a puntatori a oggetti creati utilizzando l'operatore new".
Quindi si scopre che il nuovo operatore non crea sempre un nuovo oggetto? O il controllo dell'uguaglianza di un oggetto creato a NULL è una peculiarità dello stile di uno sviluppatore e non è obbligatorio?
Domanda. Il nuovo operatore. Il Manuale di riferimento afferma che new è un operatore; tuttavia, negli esempi, viene spesso fatto un controllo dopo aver usato questo operatore per assicurarsi che sia uguale a NULL. Per esempio:
Si dice anche che"NULL può essere paragonato a puntatori a oggetti creati utilizzando l'operatore new".
Quindi si scopre che il nuovo operatore non crea sempre un nuovo oggetto? O il controllo dell'uguaglianza di un oggetto creato a NULL è una peculiarità dello stile di uno sviluppatore e non è obbligatorio?
Se si crea un oggetto dinamico in un posto in un programma, è logico che lo si distrugga in un altro posto, e non è certo che tutto questo sia all'interno di una funzione, quindi una semplice regola è controllare se esiste prima di usare un puntatore.
Questo è corretto. Ma negli esempi del Manuale di riferimento, il controllo viene fatto immediatamente dopo la creazione dell'oggetto, cioè in un punto del programma e all'interno di una funzione. E la regola data qui non è del tutto pertinente. Perché il controllo dovrebbe essere eseguito subito dopo la creazione di un oggetto?Quindi si scopre che il nuovo operatore non crea sempre un nuovo oggetto? =(ripeto)=
Ecco un altro esempio tra i tanti:
Questo è corretto. Ma negli esempi del Manuale di riferimento, il controllo viene fatto immediatamente dopo la creazione dell'oggetto, cioè in un punto del programma e all'interno di una funzione. E la regola di cui sopra non è applicabile in questo caso. Perché il controllo dovrebbe essere eseguito subito dopo la creazione dell'oggetto?Quindi risulta che il nuovo operatore non crea sempre un nuovo oggetto (lo ripeto)?
Ecco un altro esempio tra i tanti:
Esiste una tale possibilità. Nel riferimento, il primo paragrafo.
OK. Si scopre che il comportamento dell'operatore è quello di una funzione. Può essere creato o meno.
Per esempio, non c'era abbastanza memoria per un oggetto.
Domanda. Una volta che una funzione virtuale con un insieme specifico di parametri e tipi è dichiarata in una classe madre, il numero e i tipi di parametri delle funzioni virtuali corrispondenti possono essere cambiati nelle classi derivate?
Da un lato, il Manuale di Riferimento afferma che "una funzione virtuale può essere sostituita in una classe derivata . Lascelta di quale definizione di funzione chiamare per la funzione virtuale è fatta dinamicamente (a runtime). Un caso tipico è quando una classe base contiene e le classi derivate hanno le proprie versioni di quella funzione". D'altra parte, gli esempi forniti nel Manuale di riferimento si riferiscono a casi in cui le funzioni virtuali hanno corpi di definizione di funzione differenti piuttosto che intestazioni di definizione di funzione.
Domanda. Dopo aver dichiarato una funzione virtuale con un certo insieme di parametri e i loro tipi in una classe padre, è possibile cambiare il numero e i tipi di parametri delle funzioni virtuali corrispondenti nelle classi figlie?