Erreurs, bugs, questions - page 1892

 
Renat Fatkhullin:
Le travail d'une bande de roulement.
si c'est une blague, c'est drôle ;)) et sinon, expliquez-moi ce qu'est une bande de roulement en programmation.
 
Konstantin:
veuillez expliquer ce qu'est un protecteur en programmation
la chose qui a fait disparaître les décompilateurs
 
Renat Fatkhullin:

Oui, voici un exemple qui illustre votre question :

et la sortie :

D'abord, nous vérifions le casting non résolu de bas en haut et obtenons NULL. C'est exact.

Ensuite, nous créons un objet CLASS2, nous lui attribuons une référence à sa classe parente (il est important de comprendre ici que l'environnement sait dynamiquement que le type original de l'objet CLASS2 est stocké dans ses méta-informations). Ensuite (pour répondre à votre question), il faut effectuer une conversion dynamique (en vérifiant le droit de conversion en fonction des méta-informations de l'objet source) de la référence CLASS1 à CLASS2.

Nous vérifions le résultat du casting et l'écrivons dans la variable i = 1. Enfin, nous sortons la valeur de i, qui fait référence à l'objet créé à l'origine.

Tout fonctionne correctement et conformément à la spécification (y compris la spécification dynamic_cast dans le C++ lui-même).

Merci pour cette clarification. La conversion de type dans MQL est maintenant assez claire)). Mais à quoi sert de créer le dynamic_cast si on ne peut de toute façon pas lancer de bas en haut et qu'on peut se passer du dynamic_cast de haut en bas ? Peut-être y a-t-il des subtilités ici et je ne les comprends pas ?
 
Konstantin:
Merci pour la clarification, je l'ai un peu compris dans MQL pour la conversion de type ;)) Mais je ne sais pas pourquoi nous avons besoin du dynamic_cast si nous ne pouvons pas lancer de bas en haut de toute façon et que nous pouvons nous passer du dynamic_cast de haut en bas ? Peut-être y a-t-il des subtilités ici et je ne les comprends pas ?

Relisez le code et mon explication, s'il vous plaît.

Il démontre également comment le cast dynamique peut en toute sécurité augmenter le cast de bas en haut en se basant sur les méta-informations de l'objet créé à l'origine. Si un objet a été créé à partir d'un descendant, puis converti en référence à une classe parent, alors, sur la base des méta-informations (l'objet d'origine est en fait un descendant), vous pouvez sans risque convertir cette référence en descendant.

Généralement utilisé lorsque des objets de divers descendants sont empilés dans un tableau/une liste de références à la classe parente, puis récupérés et coulés en toute sécurité vers l'un ou l'autre des descendants. Si la conversion donne NULL, cela signifie que l'objet n'est pas récupéré par le descendant et ne doit pas être traité.

 
Renat Fatkhullin:

Relisez le code et mon explication, s'il vous plaît.

Il démontre également comment le cast dynamique peut en toute sécurité augmenter le cast de bas en haut en se basant sur les méta-informations de l'objet créé à l'origine. Si un objet a été créé à partir d'un descendant, puis converti en référence à une classe parent, alors, sur la base des méta-informations (l'objet d'origine est en fait un descendant), vous pouvez sans risque convertir cette référence en descendant.

Généralement utilisé lorsque des objets de divers descendants sont empilés dans un tableau/une liste de références à la classe parent, puis récupérés et coulés en toute sécurité vers l'un ou l'autre des descendants. Si la conversion donne NULL, alors l'objet n'est pas récupéré par le descendant et il ne doit pas être traité.

J'ai lu le code, mais ce n'est pas ça :

CLASS2 *my_ptr2=dynamic_cast<CLASS2 *>(my_ptr);

n'est pas analogue à ça :

CLASS2 *my_ptr2=(CLASS2*)my_ptr;

Je n'arrive pas à saisir toute la subtilité de l'utilisation de dynamic_cast, si ce n'est que lors de l'exécution du code utilisant dynamic_cast nous n'obtiendrons pas d'erreur car dynamic_cast renvoie NULL en cas d'erreur

 
Konstantin:

J'ai lu le code, mais ce n'est pas ça :

n'est pas similaire à celui-ci :

Je n'arrive pas à saisir la subtilité de l'utilisation de dynamic_cast, si ce n'est qu'en exécutant du code utilisant dynamic_cast, nous n'obtiendrons pas d'erreur car dynamic_cast renvoie NULL en cas d'erreur

Je recommande de lire la spécification C++ dymanic_cast sur google.

C'est une chose insignifiante.

 
Lors de l'attribution de ressources PC en cludes, le jeu"Call of Duty : BlackOpsIII" se plante - 1 agent a été impliqué. La priorité de l'agent était minime - la mémoire consommait 3,5 gigaoctets de 16 - en général il ne devrait pas y avoir de problèmes. Avec des agents non actifs, le jeu s'est déroulé sans problème. Avez-vous déjà testé la compatibilité des agents avec d'autres programmes ?
 
-Aleks-:
Lors de l'attribution de ressources PC en cludes, le jeu"Call of Duty : BlackOpsIII" se plante - 1 agent a été impliqué. La priorité de l'agent était minime - la mémoire consommait 3,5 gigaoctets de 16 - en général il ne devrait pas y avoir de problèmes. Avec des agents non actifs, le jeu s'est déroulé sans problème. Généralement testé sur la compatibilité des agents avec d'autres programmes ?

Pour une raison quelconque, j'ai tout de suite pensé qu'il s'agissait peut-être d'un bug dans le jeu et je l'ai relié aux particularités du travail sur les machines 64 bits lorsque le programme est chargé dans l'espace d'adressage > 4 Go.
 
Sergey Dzyublik:

Pour une raison quelconque, l'idée est immédiatement venue qu'il y avait peut-être un bug dans le jeu et l'a relié aux particularités du travail sur les machines 64 bits, lorsque le programme est chargé dans l'espace d'adressage > 4 Go.

C'est-à-dire que pour vérifier cette hypothèse, je dois remplir la RAM de plus de 4 gigaoctets et lancer le jeu - j'essaierai quand mon fils y jouera.
 

qui peut me dire le type de l'ordre souligné ?

s'agit-il déjà d'un achat ou simplement d'une offre, quelle est la valeur de ce type d'ordre ?

Sa durée de vie est de quelques millisecondes, il ressemble à un achat, mais le compte est compensé et il ne peut y avoir deux positions opposées.

ou s'agit-il simplement d'une file d'attente ?


Raison: