Maison >développement back-end >C++ >Pourquoi utiliser « ceci » après « supprimer ceci » en C est-il une mauvaise idée ?

Pourquoi utiliser « ceci » après « supprimer ceci » en C est-il une mauvaise idée ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-14 12:47:02834parcourir

Why is Using

Les périls de "ceci" Après "supprimer ceci"

L'utilisation de la construction "supprimer ceci" en C n'est pas sans conséquences pièges. Bien que les trois premières restrictions sur son utilisation soient compréhensibles, la quatrième restriction interdisant d’examiner sa valeur ou d’effectuer toute autre action sur celui-ci peut sembler déroutante. Après tout, ce n'est qu'un pointeur, n'est-ce pas ?

La raison de cette restriction apparemment arbitraire réside dans la nature indéfinie de la valeur du pointeur "this" après avoir appelé "supprimer ceci". Cette valeur non définie peut entraîner des conséquences imprévisibles et un comportement potentiellement catastrophique.

Par exemple, imaginez réinterpréter le pointeur "this" vers un entier, puis tenter d'y accéder. Le compilateur est libre de décider que cette action justifie l'effacement de votre disque dur. Même si la plupart des compilateurs se comporteraient probablement de manière plus raisonnable, s'appuyer sur leur bienveillance face à un comportement indéfini est un jeu dangereux.

Pour éviter le risque d'un comportement indéfini, il est prudent de faire une copie du pointeur avant de supprimer le objet. Cela vous permet de continuer à travailler avec la copie tout en garantissant que le comportement du pointeur "this" d'origine reste prévisible et imprévisible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn