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
Vasily, un esempio, per favore!
Conosco solo un caso in cui dovete allocare la memoria e avete bisogno di un puntatore ad essa.
Sono sicuro che puoi quasi sempre farne a meno. È auspicabile non usare la gestione manuale della memoria. C'è sempre una libreria standard che ha già risolto questi problemi.
La presenza di identificazione dinamica del tipo di solito indica l'architettura stampella di un progetto.
La presenza dell'identificazione dinamica dei tipi indica un alto grado di polimorfismo e un livello più alto di astrazione. Aumenta la gestibilità e la scalabilità del progetto. Permette di lavorare con il codice a livello di interfaccia e incoraggia il programmatore a non entrare nei dettagli dell'implementazione.
Vasily, penso che il tuo esempio sia fuori luogo. Ci sono dei template (macro in µl), che possono risolvere molti problemi in fase di compilazione. E se dovete fare la down-conversion, avete progettato male il programma (lo ha detto anche Straustrup).
Cosa c'è di sbagliato nel cambio al ribasso con un controllo rigoroso del tipo? Straustrup ha detto questo quando non c'era nessun tipo di controllo. Ora, se conoscete il tipo derivato, potete garantire la conversione prima che inizi e quindi evitare errori di esecuzione.
Ma i vantaggi della down-conversion sono evidenti. Il principale è che funziona a livello di interfaccia. Se il costruttore di una classe base è chiuso nell'ambito protetto, è un'interfaccia e una classe astratta e possiamo lavorare con essa al suo livello senza dover conoscere l'implementazione raffinata dei suoi discendenti. Ma se implementiamo un comportamento polimorfico a seconda del tipo di istanza, possiamo sicuramente specificare l'implementazione dell'istanza corrispondente e ad esempio chiamare il suo metodo unico. Con le funzioni virtuali non avremo nemmeno bisogno della conversione dei tipi. Dopo tutto, le funzioni virtuali chiameranno l'implementazione specifica "dietro le quinte".
... Con le funzioni virtuali, anche una conversione di tipo non sarà necessaria. Dopo tutto, le funzioni virtuali chiameranno una particolare implementazione "dietro le quinte".
Cosa c'è di sbagliato nel cast cadente quando i tipi sono strettamente controllati?
Se lo scrivi correttamente, non ne hai bisogno.
P.S: non sto mettendo nella stessa bottiglia l'identificazione del tipo samapal e il meccanismo della funzione virtuale.
Un esempio da una vera applicazione MQL:
Mi piacerebbe sentire le opinioni degli esperti su come risolverebbero un tale problema. Personalmente l'ho risolto usando l'identificazione dinamica del tipo, il metodo "pattern" e le conversioni step-down. È stato risolto così bene che finalmente mi ha permesso di creare complesse tabelle interattive con elementi irregolari e completamente personalizzabili. I risultati sono così tangibili che trovo ingenuo affermare che de "l'identificazione dinamica è una stampella" e "la down-conversion è il male".
p.s. Pavlick, a proposito, non hai ancora risposto a cosa c'è esattamente di sbagliato nella down-conversion.
No, sono lontano dall'essere un esperto. Quello che ho detto sul riduttore è la mia esperienza, mi sforzo di scriverlo così + è confermato da persone che rispetto. Scrivere un programma per dimostrare qualcosa è una perdita di tempo.
Pavlick, a proposito, non hai ancora risposto a cosa esattamente rende cattivo il ridimensionamento.
È difficile da spiegare. Capisco, ma non posso dirlo). I libri probabilmente lo spiegheranno meglio.
No, sono lontano dall'essere un esperto.