Erreurs, bugs, questions - page 1889
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
Quelle est l'erreur d'exécution?
si vous faites ça :
c'est-à-dire la conversion en parent, alors tout se passe correctement, apparemment des changements très importants dans la structure de la langue ont eu lieu et maintenant le type dérivé n'est sans ambiguïté pas un type ancêtre.
Vérifié sur C++ :
Le transfert d'un objet d'une classe mère vers une classe dérivée est géré correctement, c'est-à-dire qu'il y a une erreur dans le mécanisme MQL5 de transfert de type, à moins qu'il n'ait pas été conçu de cette façon.
Quelle est l'erreur d'exécution
Si vous ne vérifiez pas ce que dynamic_cast renvoie, il est inutile de l'utiliser.
si vous faites ça :
c'est-à-dire la conversion en parent, alors tout se passe correctement, apparemment un changement très important dans la structure du langage a eu lieu et maintenant le type dérivé n'est sans ambiguïté pas un type ancêtre.
Si vous ne vérifiez pas ce que dynamic_cast renvoie, il n'y a aucun intérêt à l'utiliser.
Merci, dans mon exemple, il renvoie NULL. Pourquoi cela se produit-il ?
Pourriez-vous donner un exemple pratique de l'utilisation de cette astuce ?
Les développeurs l'utilisent uniquement dans Graphic.mqh comme suit
En même temps, ils ont des définitions de classes/objets comme ceci
C'est-à-dire qu'ils transmettent un pointeur de parent à un enfant. Eh bien, c'est exactement ce que je fais dans mon exemple ! Où est le problème ?
Un pointeur vers une classe mère peut en fait contenir un pointeur vers une classe descendante.
Un pointeur vers une classe mère peut en fait contenir un pointeur vers une classe descendante.
Merci, je l'ai eu !
Je ne comprends toujours pas pourquoi dans MQL on ne peut pas caster un pointeur vers un type de pointeur de classe descendante, mais en C++ c'est possible, pouvez-vous expliquer si c'est un bug dans MQL ou si ça devrait être comme ça ?
c'est possible en C++, pouvez-vous expliquer si c'est un bug dans MQL ou si cela devrait l'être ?
Quelle est l'erreur d'exécution
C'est vrai, on ne peut pas conduire de bas en haut, seulement de haut en bas. C'est pour des raisons de sécurité.
Vous ne pouvez pas comparer avec le C++ - tout peut être réduit à n'importe quoi là-bas.