Erreurs, bugs, questions - page 2092
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
Erreur d'exécution
Erreur de compilation
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Bugs, bugs, questions
A100, 2017.12.19 23:04
Erreur lors de l'exécution
Il semble que la raison soit compréhensible dans les deux cas - le champ et la méthode portent le même nom, donc la référence au champ et à la méthode est exactement la même. En conséquence, le compilateur appelle le champ au lieu de la méthode. Dans le premier cas, le champ n'est pas défini, c'est donc un échec. Dans le second cas, tout va bien - le champ est appelé.
Ainsi, si nous déclarons une méthode dans la base et un champ avec le même nom dans le descendant, cela fonctionnera dans une séquence différente.
Le compilateur devrait donner la sortie suivante
En conséquence, le compilateur appelle le champ, et non la méthode.
En quoi un champ est-il meilleur qu'une méthode ? Le C++, par exemple, appelle une méthode plutôt qu'un champ - c'est logique - car la méthode se trouve dans une classe dérivée, donc plus proche. En d'autres termes, si la signature de la classe dérivée convient parfaitement, pourquoi s'impliquer dans la classe de base ?
En quoi un champ est-il meilleur qu'une méthode ? Par exemple, le C++ appelle une méthode au lieu d'un champ, ce qui est logique car la méthode se trouve dans une classe dérivée, donc plus proche. En d'autres termes, si la signature d'une classe dérivée correspond parfaitement, pourquoi s'impliquer dans la classe de base ?
Vous vous rendez compte que vous avez créé une situation artificielle, qui devrait toujours être accompagnée d'un avertissement du compilateur.
Au sujet de "plus près", j'ai écrit
si vous déclarez une méthode dans la base et un champ avec le même nom dans le descendant, cela fonctionnera dans une séquence différente.
Je ne me souviens pas de la nuance avec les variables statiques. S'il vous plaît, rappelez-moi pourquoi ce bâtard génère cela ?
Tout le problème réside dans la séquence d'initialisation des variables et la séquence d'exécution du code.
Il est plus facile de comprendre en mode de débogage pas à pas que d'expliquer avec des mots.
Bug bizarre avec les emplois freelance.
il y avait 4 emplois en cours. j'en ai pris 1 qui est devenu 5. j'en ai passé un qui est resté 5.
J'ai pris un emploi, ça dit 5. J'ai pris un autre emploi, ça dit 6. J'ai pris un emploi, ça dit 4 emplois mais en cours de 6.
a pris un autre emploi avec 5 travaux en cours 7
maintenant je ne peux pas prendre de travail alors que je n'en ai que 5.
numéro de la demande
1913868
Bug bizarre avec les emplois freelance.
il y avait 4 travaux en cours. j'ai pris 1 travail est devenu 5. j'ai passé un travail est resté 5.
J'ai pris un travail de plus et il dit 5. J'ai pris un travail de plus et il dit 6. J'ai pris un travail de plus et il dit 4 travaux mais il dit 6 travaux en cours.
en a pris un autre avec 5 travaux mais "en cours" 7
maintenant je ne peux pas prendre de travail alors que je n'en ai que 5.
numéro de la demande
1913868
Merci pour le message, je travaille sur un correctif.
J'ai écrit quelques lignes il y a quelques temps, j'ai remarqué un oubli :
ZS : non, le schéma était un peu différent là-bas :