![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
uniquement à travers des chaînes, j'avais l'habitude d'utiliser StringConcatenate() pour obtenir l'adresse du pointeur, comme ceci :
Je ne connaissais pas StringConcatenate, c'est dommage que dans MT5 il a été remanié et ne peut pas être utilisé sans string s. Et StringFormat est beaucoup plus rapide sur 4.
Et en général, cette opération de "sondage" du pointeur à travers la chaîne est deux fois plus lente en cinq, bien que tout soit généralement plus rapide là-bas, parfois d'un ordreLes parenthèses rendent l'expression totalement dépourvue d'ambiguïté.
Et si nous continuons dans l'esprit du "compilateur bienveillant", alors toutes les expressions dans if devraient être entourées de crochets, au cas où un programmeur stupide confondrait quelque chose.
Si nous parlons d'une plus grande clarté, il suffit de mettre des espaces :
L'utilité d'un tel tableau est discutable, franchement. Que pouvez-vous en faire ? Vous savez que vous n'appellerez pas automatiquement la suppression sur les membres du tableau, n'est-ce pas ?
Pourquoi ? Les destructeurs d'objets sont toujours virtuels.
Essayez-le. En cas de nullité*, il n'y a aucune chance.
supprimer n'est pas du tout appelé automatiquement pour qui que ce soit).
De plus, cela n'empêche pas le destructeur du tableau de parcourir la liste et de supprimer tous les objets, si nécessaire.
bien qu'il soit plus avantageux d'utiliser un type de base commun et de stocker une référence à celui-ci pour de nombreuses raisonsSi vous voulez mettre CArayObject au rebut, vous devez faire une surcharge (comme ceci https://www.mql5.com/ru/forum/170952/page110#comment_9894796) sur la classe de base et les mettre dans un tableau (éventuellement le vôtre), mais alors vous n'aurez plus besoin de void*.
Je ne suis pas contre le vide*, il est nécessaire, mais dans une capacité différente.
Essayez-le. En cas de nullité*, il n'y a aucune chance.
Tout fonctionne bien, pourquoi inventez-vous ça ?
On l'a dans le journal :
void A::~A()
void B::~B()
Pourquoi suis-je tombé dans le panneau de toute façon...
Et si nous continuons dans l'esprit du "compilateur bienveillant", alors toutes les expressions dans if devraient être entourées de crochets, au cas où un programmeur stupide confondrait quelque chose.
Si l'on veut plus de clarté, il suffit de mettre des espaces :
Si vous voulez plus de clarté avec les espaces, vous devriez simplement mettre des espaces dans le code.
La visibilité sur les espaces n'est rien - bienvenue dans le monde des outils de stylisme.
Si un stylisateur rend illisible un code difficile à lire, il ne faut pas s'embêter avec le stylisateur.
Pour moi, un stylo n'est bon que si TOUTES ses règles peuvent être personnalisées avec souplesse.