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
Buon punto. Sarebbe bello se gli argomenti fossero supportati da un codice piuttosto che solo bla, bla, bla.
Sostenere la cosa.
Ecco la mia classe CMyObject:
La macro CONVERT_OBJECT_WITH_CHECK è anche definita alla fine, che per la versione DEBUG esegue un ulteriore controllo di conversione del puntatore basato sul tipo di oggetto
Sostenere la cosa.
Ecco la mia classe CMyObject:
La macro CONVERT_OBJECT_WITH_CHECK è anche definita alla fine, che, per la versione DEBUG, esegue un ulteriore controllo di conversione del puntatore basato sul tipo di oggetto
È bellissimo. Naturalmente, è una questione di gusti. Ma, basandomi sulla sintassi MQL, lo scriverei così:
È bellissimo. Naturalmente, è una questione di gusti. Ma, basandomi sulla sintassi MQL, lo scriverei in questo modo:
Sì, proprio così.
Ma questo è il mio "stile di programmazione" senile (ciao, Volchansky con il suo recente thread).
Ho tutte le enumerazioni - iniziano con E, e poi con la notazione "gobba" - nome. E i tipi stessi in enumerazione iniziano con un'abbreviazione (fino a quattro lettere) di tipo enumerazione.
Di conseguenza, poiché l'enumerazione è EMyObjectType, tutti i valori iniziano con MOT_
Sei un idiota? )) Non ho detto una parola negativa su F#. Impara a leggere e a capire quello che ti viene detto prima di postare i tuoi stupidi commenti.
Se si confronta OOP con FP, è più sensato confrontarlo con un linguaggio FP puro, cioè Haskel. F# è già così così, mentre Python e R non lo sono affatto. Questo è quello che voglio dire. Altrimenti potremmo arrivare ad un punto in cui il C++ è anche un linguaggio FP.Sei un troll analfabeta. Per la cronaca, tutte le lingue elencate sono funzionali in un modo o nell'altro. Andate a imparare la materia. La domanda è stata posta per capire in quale quadro di riferimentoAndrei sta probabilmente praticando uno dei linguaggi della FP, quindi l'elenco era molto generale.
Cosa dovrebbe significare?
Cosa dovrebbe esserci nell'"oggetto base" secondo voi?
Personalmente ho quasi TUTTI gli oggetti in tutti i miei progetti - ereditati da CMyObject: public CObject, (nel mio oggetto sono aggiunti altri due campi - nome della classe e ID dell'istanza), e ripetutamente ho trovato che ho bisogno della funzionalità CObject::Compare() molto. Un paio di volte sono stati utili anche i puntatori di liste.
CObject ha un solo obiettivo: fornire il controllo dei tipi. E ci riesce traballantemente. Metodi come Next(), Prev(), ecc. sono per collezioni molto specializzate. Non appartengono a CObject. Lo stesso vale per i metodi Save e Load. Sarebbe bello non avere nemmeno Comparer, ma questa è l'unica soluzione senza interfacce.
Per quanto riguarda il metodo Type(), non fornisce una tipizzazione rigorosa, perché restituisce il solito numero. Potete vedere sull'esempio del vostro codice. Si definisce un nuovo metodo GetType() che restituisce il tipo come enumerazione. Non c'è davvero altro modo, lo faccio da solo. Per questo si deve aggiungere il CObject standard, ed è scorretto.
Continuiamo con CObject::Compare().
Ho tale oggetto CFactoryBalanceResultSeries - è una serie con risultati di bilanciamento con riferimento all'oggetto factory di Expert Advisor. In realtà è una curva di equilibrio sulla storia con riferimento all'Expert Advisor che l'ha scambiata.
Quindi ho uno script in cui confronto queste serie molto equilibrate.
Finché ci sono solo due serie è facile confrontarle. Ma quando ce ne sono dozzine - non si può confrontare a occhio, è necessario un confronto più formale.
E solo per automatizzare questo processo - ho dovuto scrivere una funzione che ordina proprio queste serie. E qui è stato utile, perché la classe CFactoryBalanceResultSeries è un erede di CObject con la sua funzione di confronto. Se sovrascriviamo questa funzione, abbiamo una pronta possibilità di ordinare le serie.
Ecco come appare questa funzione nel mio caso:
Cioè, a seconda del tipo di ordinamento - selezioniamo la funzione di confronto richiesta, che viene utilizzata nella funzione di ordinamento generale.
Per esempio, se vogliamo ordinare la serie dei saldi in base alla parte dell'ultimo prelievo dal massimo, si useranno le seguenti funzioni:
Continuerò con CObject::Compare().
Dal recente
Non è molto bello, imho.
Si potrebbe usare un puntatore a una funzione.
Sì, proprio così.
Ma, questo è il mio 'stile di programmazione' senile (ciao, Wolchansky con il suo recente thread).
Con me, tutte le enumerazioni - iniziano con E, e poi con la notazione "gobba" - nome. E i tipi stessi in enumerazione iniziano con un'abbreviazione (fino a quattro lettere) di tipo enumerazione.
Corrispondentemente, poiché l'enumerazione EMyObjectType - tutti i valori iniziano con MOT_
Sì, ho la stessa enumerazione.
ZS: Sono arrivato ora al computer. Come previsto, questo thread è rapidamente sceso nella spazzatura). Cercherò di finire la storia delle funzioni virtuali più tardi. Dovremmo chiamare questo forum Blah Blah Blah Blah).
Ho letto i diversi interessi di ognuno... Sono in procinto di ridisegnare una classe per impostare e gestire una griglia virtuale, ne ho bisogno.