Caractéristiques du langage mql5, subtilités et techniques - page 113
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
Je ne vois pas pourquoi ma solution est pire, je la mets ici aussi :
Parce qu'il s'agissait à l'origine d'un spectacle "voyez comment je fais" et qu'il nécessitait exactement la solution qui avait été imaginée au préalable. Et le vôtre ne s'intégrait pas dans la production.
Mais même le directeur n'a pas tenu compte du fait que, selon la documentation, l'ordre de calcul des paramètres n'est pas garanti.
Mais même le directeur n'a pas tenu compte du fait que, selon la documentation, l'ordre de calcul des paramètres n'est pas garanti.
Pour être juste, la documentation de MQL le décrit :
Note
Vous devez vous rappeler que les paramètres sont transmis à la fonction à l'envers, c'est-à-dire que le paramètre le plus récent est calculé et transmis en premier, puis l'avant-dernier, et ainsi de suite. Le paramètre qui vient en premier après le crochet d'ouverture est calculé et transmis en dernier.
C'est certainement une folie du point de vue du C++, mais s'il s'agit d'une règle documentée dans MQL, cela peut être acceptable, si vous ne prévoyez pas de porter votre code à l'avenir. Et si c'est le cas, vous pouvez sécuriser cette place en vérifiant #ifdef __MQL__.
L'ordre dans lequel les paramètres sont calculés n'est pas garanti.
Je viens de prêter attention à votre lien. En effet, ce n'est pas garanti. Quel MQL contradictoire ;))
Je viens de prêter attention à votre lien. En effet, ce n'est pas garanti là-bas. C'est le MQL controversé ;))
Sur x32 inversé (je pense que ça va sauver), car il y a un lien direct avec la pile. Alors que sur x64, l'inverse n'a aucun sens et c'est pourquoi il n'y a aucune garantie pour l'avenir... de plus, ça ne semble pas naturel ici
Je ne serai même pas surpris si l'ordre est différent avec et sans optimisation.
Pour toutes les options proposées, je tiens à dire merci. Vous avez contribué de manière constructive à la résolution d'un problème pratique.
La tâche a été bien démontrée qu'elle ne fonctionnerait pas si void TimeCurrent() échouerait. Le vide dans sa forme actuelle est capable de paralyser beaucoup de choses.
Je veux appeler la méthode parent
Voici le code, qu'est-ce que je fais mal ?
//+------------------------------------------------------------------+
class A
{
public:
virtual int Test_A()
{
return 100;
}
};
//+------------------------------------------------------------------+
class B :public A
{
public:
virtual int Test_A()
{
return 200;
}
};
B b;
//+------------------------------------------------------------------+
void OnStart()
{
Comment (A::b.Test_A());
}
//+------------------------------------------------------------------+
Je veux appeler une méthode parent
la syntaxe correcte est la suivante :
mais dans le MQL, il n'y a ni bien ni mal.
Mais la question s'adresse davantage à vous : si une fonction doit être appelée à partir d'une fonction dérivée, pourquoi la mettre dans une fonction virtuelle de base ?
fxsaber:
La tâche a bien montré que si le void TimeCurrent() était appelé, rien ne fonctionnait. Le vide dans sa forme actuelle est capable de mutiler beaucoup de choses.
En un coup d'œil :
Deux macros ne semblent pas faire beaucoup de mal. Quelque chose de plus élégant, par la puissance de μl, ne me vient pas à l'esprit.
En haut de ma tête :
Pourquoi faire... pendant ? Les accolades sont suffisantes.
Pour que ça marche :