Erreurs, bugs, questions - page 1135
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
Voici un exemple tiré de la documentation de mql5. Voici un lien vers cette page. Et ci-dessous ce code.
Il semble qu'avec la mise à jour, non seulement leplacement obligatoire des membres de données de classe statiques a été introduit,
mais a également supprimé l'appel implicite au constructeur paramétrique.
Utilisez un appel explicite :
Pour quels motifs ont-ils annulé la conversion d'objets non constants en objets constants ?
Tout se compile normalement - pas d'erreurs ni d'avertissements.
S'il y a des erreurs, c'est seulement dans la structure, mais ils finiront par les trouver.Tout se compile sans erreur ni avertissement
Si "A" contient une méthode non constante, mais qu'il est lui-même transmis à une fonction en tant qu'objet constant, alors cette méthode non constante ne peut pas être appelée dans la fonction maintenant.
Et maintenant question d'attention : effaçons le CObject.Compare() :
O.k. c'est une méthode constante qui prend un noeud d'objet constant. C'est son droit de déclarer le nœud comme constant. Mais sur quelle base Compare ne devrait-il plus travailler qu'avec des méthodes constantes de nœuds ? Node n'est pas obligé d'avoir des méthodes constantes pour le bien de Compare. Mais il s'avère que juste au motif que l'objet est complexe et n'a pas de méthodes constantes, maintenant il ne peut pas utiliser la bibliothèque standard avec tout ce que cela implique ! !!Il est désormais obligatoire de placer des membres statiques.
Et comment êtes-vous censé placer des objets statiques complexes si les constructeurs statiques ne sont pas autorisés ?
Si "A" contient une méthode non constante, mais qu'il est lui-même transmis à la fonction en tant qu'objet constant, cette méthode non constante ne peut plus être appelée dans la fonction.
C'est vrai, c'est comme ça que ça doit être, sinon à quoi bon spécifier
au lieu de
void f(A* a)
Si "A" contient une méthode non constante, mais qu'il est lui-même transmis à la fonction en tant qu'objet constant, cette méthode non constante ne peut plus être appelée dans la fonction.
Et comment êtes-vous censé placer des objets statiques complexes si les constructeurs statiques ne sont pas autorisés ?
C'est vrai, ça doit l'être, sinon à quoi bon spécifier
au lieu de