![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
Ancora, non capisco cosa sia "Object" nell'OOP.
Dice: "Un oggetto è un'istanza di una classe". Una classe può avere molte istanze. Ma queste istanze sono solo riferimenti alla classe. Una classe contiene campi. I campi sonole proprietà dell'oggetto. I metodi sono elementi del motore che gestiscono i valori di specifiche proprietà dell'oggetto.
Per come la vedo io, un oggetto è un insieme di proprietà nominate (o numerate). I valori di proprietà sono gestiti da vari meccanismi di grandi blocchi. È praticamente la stessa cosa. Solo che è scritto in modo diverso. In OOP, la funzionalità è frammentata per il bene del suo incapsulamento. Nel mio caso è viceversa - fusione di funzionalità.
Se trasformiamo la domanda in un'area grafica, la classe CButton è la stessa del mio elemento Button. Nella mia implementazione, sono tre oggetti nel kernel, ognuno con un certo numero di proprietà. Nella classe, è anche un elenco di proprietà (campi), metodi del pulsante (non ho metodi appartenenti separatamente al pulsante. La funzionalità dei pulsanti è all'interno di blocchi funzionali globali). In questi blocchi, il pulsante è trattato come qualsiasi elemento, ma in certi punti ha le sue condizioni e gestori personali. In OOP, la stessa funzionalità del pulsante è incapsulata in una classe a cui si accede tramite istanze.
George, in ogni biblioteca, in ogni soluzione, c'è un concetto. Se prendo il concetto di qualcun altro e cerco di sviluppare il mio sulla sua base, potrei avere un crash del concetto, perché un sistema costruito su due o più concetti non può essere stabile. Pertanto, le cose innovative devono essere sviluppate da soli e da zero. Per non lottare con gli errori "generici" e le incongruenze degli altri autori.
Peter, stai discutendo invano. È impossibile provare qualcosa. Inoltre non capisco questo approccio alla programmazione quando invece di usare _Symbol suggeriscono di collegare la libreria CSymbolInfo e scrivere object.Name().
Non capisco l'uso di questi metodi per esempio
Qual è la difficoltà nello scrivere
In entrambi i casi c'è solo una linea di codice.
D'altra parte, Artyom mi ha mostrato possibilità OOP, in cui mi sono perso, non ho capito niente e non uso
Non così tanto.
Ecco un altro modo di spiegarlo. Di solito nessuno lo spiega in questo modo.
Tutti i programmatori sanno cos'è l' int x, per esempio;
Ora immaginiamo che la parola int sia come il nome di una classe, e cosa descrive?
1. un intero
2. occupa 4 byte in memoria
3. assume valori +- entro certi limiti. (questo è sufficiente);
E quando scriviamo int x; allora dichiariamo un oggetto x, di tipo int . x occupa già fisicamente un campo di 4 byte nella RAM.
Peter, stai discutendo invano. È impossibile provare qualcosa. Inoltre non capisco questo approccio alla programmazione quando invece di usare _Symbol suggeriscono di collegare la libreria CSymbolInfo e scrivere object.Name()
Non capisco l'uso di questi metodi per esempio
Qual è la difficoltà nello scrivere
In entrambi i casi c'è solo una linea di codice.
D'altra parte, Artyom mi ha mostrato possibilità OOP, in cui mi sono perso, non ho capito niente e non uso
In questa variante di senso, la Classe è un magazzino di strumenti, materiali, materie prime e macchine. Gerarchia di classi ereditate - come i laboratori di una "fabbrica".
Peter, perché vuoi entrare in queste sottigliezze?
Una classe è una descrizione di un oggetto, le sue proprietà e i metodi per impostare e accedere a queste proprietà.
Un oggetto è quando dichiariamo una variabile di tipo classe, o creiamo un nuovo oggetto di quella classe usando l'operatore new.
Per esempio, questa è una classe:
Ha solo due membri di classe - type e name. Queste sono le sue proprietà. E non è ancora un oggetto. È un piano, un progetto, un progetto... dell'oggetto futuro.
Creiamo un oggetto:
CClass class_obj; // Объявили переменную class_obj с типом класса CClass. Теперь class_obj - это объект
Creiamo un oggetto e un puntatore ad esso:
George, in ogni biblioteca, in ogni soluzione, c'è un concetto. Se prendo il concetto di qualcun altro e cerco di sviluppare il mio sulla sua base, potrei avere un crash del concetto, perché un sistema costruito su due o più concetti non può essere stabile. Pertanto, le cose innovative devono essere sviluppate da soli e da zero. Per non lottare con gli errori "generici" e le incongruenze degli altri autori.
Ci sono solo sette (!) note. E quanta musica c'è su di loro? E nessun compositore pensa al collasso. Scrive solo musica che suona nell'anima. Non inventa qualcos'altro, usa quelle sette note.
Peter, perché vuoi entrare in queste sottigliezze?
Una classe è una descrizione di un oggetto, le sue proprietà e i metodi per impostare e accedere a queste proprietà.
Un oggetto è quando dichiariamo una variabile di tipo classe, o creiamo un nuovo oggetto di quella classe usando l'operatore new.
Per esempio, questa è una classe:
Ha solo due membri di classe - type e name. Queste sono le sue proprietà. E non è ancora un oggetto. È un piano, un progetto, un progetto... ...di un oggetto futuro.
Creiamo un oggetto:
Creiamo un oggetto e un puntatore ad esso:
Una classe è una descrizione di un oggetto. Bene. Contiene le proprietà e le funzionalità dell'oggetto. Ok. Tutto questo è ordinato, aperto o protetto.
Allora l'OGGETTO stesso è fuori dal quadro. È nel contesto della classe. Nel contesto del suo nome e della sua descrizione. Cioè, in OOP, l'Oggetto, è esattamente un insieme di attributi (non solo proprietà, ma anche elementi funzionali - metodi), ma più ordinato e incapsulato di quello che ho. (Ha più senso per me).
Non capisco l'uso dei metodi SB come
perché è difficile scrivere
il concetto stesso di OOP implica semplicemente non scrivere - non è necessario conoscere l'implementazione del metodo (nel tuo esempio return(SymbolSelect(m_name,select))
Immaginate che invece di questa linea:
devi fare un sacco di ricerche, controlli vari, ecc. - Questo ti porterà via del tempo per scrivere la tua libreria e studiare il materiale
Supponiamo che il vostro compito sia solo quello di usare un solo metodo di una soluzione pronta sotto forma di una classe - create un'istanza della classe (oggetto) e usate il metodo pronto Select(const bool select)
Se non avete intenzione di eseguire tali operazioni, liberate la memoria = cancellate l'oggetto
Supponiamo che il vostro compito sia quello di visualizzare un pulsante, premendolo, attivate/disattivate il simbolo nell'orologio del mercato ---> create la vostra classe e incapsulatela con una classe pulsante già pronta e una classe CSymbolInfo pronta - ecco fatto - il compito è fatto
Il paradigma OOP ti dà solo informazioni generali su cosa puoi fare con una classe - se non vuoi incapsulare CSymbolInfo, puoi ereditarlo nella tua classe
HH: L'intero punto dell'OOP è di risolvere un dato problema rapidamente e senza conoscenza dell'implementazione.
Una classe è una descrizione di un oggetto. Bene. Contiene le proprietà e le funzionalità dell'oggetto. Ok. Tutto questo è ordinato, aperto o protetto.
Allora l'OGGETTO stesso è fuori gioco. È nel contesto della classe. Nel contesto del suo nome e della sua descrizione. Cioè, in OOP, l'Oggetto, è esattamente un insieme di attributi (non solo proprietà, ma anche elementi funzionali - metodi), ma più ordinato e incapsulato di quello che ho. (Ha più senso per me).
Bisogna leggere dei libri per chiarire le cose. Almeno VC++ in 21 giorni.
Il mio consiglio per la prima volta è di usare MFC, creare un'applicazione windows basata su CDialog, creando tutti i tipi di oggetti e vedere come sono facili da gestire.
Dopo di che butterete via la vostra impresa. Purtroppo.