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
solo attraverso le stringhe, usavo StringConcatenate() per ottenere l'indirizzo del puntatore, come questo:
Non sapevo di StringConcatenate, è un peccato che in MT5 sia stato ridisegnato e non possa essere usato senza stringa s. E StringFormat è molto più veloce su 4.
E in generale questa operazione di "polling" del puntatore attraverso la stringa è due volte più lenta in cinque, anche se generalmente tutto è più veloce lì, a volte di un ordineLe parentesi rendono l'espressione completamente inequivocabile.
Perché questa ambiguità aggiuntiva, se un programmatore intelligente può fare tutto senza ambiguità? E se continuiamo nello spirito del "compilatore premuroso", allora tutte le espressioni in if dovrebbero essere racchiuse tra parentesi graffe, nel caso uno stupido programmatore confonda qualcosa.
Se parliamo di maggiore chiarezza, è sufficiente mettere degli spazi:
L'utilità di una tale matrice è discutibile, francamente. Cosa ci si può fare? Sapete che non chiamerete automaticamente la cancellazione dei membri dell'array, vero?
I distruttori di oggetti sono sempre virtuali.
Provate. In caso di vuoto* non c'è alcuna possibilità.
la cancellazione non viene chiamata automaticamente per nessuno).
Un'altra cosa è che non impedisce al distruttore dell'array di passare attraverso la lista e cancellare tutti gli oggetti, se necessario
anche se è più vantaggioso usare un tipo base comune e memorizzare un riferimento ad esso per molte ragioniSe volete eliminare CArayObject, dovete fare un override (come questo https://www.mql5.com/ru/forum/170952/page110#comment_9894796) sulla classe base e metterli in un array (possibilmente vostro), ma poi non avrete più bisogno di void*.
Non sono contro il vuoto*, è necessario, ma in una veste diversa.
Provate. In caso di vuoto* non c'è alcuna possibilità.
Tutto funziona bene, perché ti stai inventando tutto?
Lo prendiamo nel registro:
void A::~A()
void B::~B()
Perché ci sono cascato comunque...
Perché questa ambiguità aggiuntiva, se un programmatore intelligente può fare tutto senza ambiguità? E se continuiamo nello spirito del "compilatore premuroso", allora tutte le espressioni in if dovrebbero essere racchiuse tra parentesi graffe, nel caso uno stupido programmatore confonda qualcosa.
Se si tratta di maggiore chiarezza, è sufficiente mettere degli spazi:
Se vuoi più chiarezza con gli spazi, dovresti semplicemente mettere degli spazi nel codice.
La visibilità sugli spazi è nulla - benvenuti nel mondo degli strumenti di styling.
Se uno styler rende illeggibile un codice difficile da leggere, allora non preoccupatevi dello styler.
Per me, uno styler è buono solo quando TUTTE le sue regole possono essere personalizzate in modo flessibile.