Oui, delete this;
a défini les résultats, aussi longtemps que (comme vous l'avez remarqué) vous assurer que l'objet a été alloué dynamiquement, et (bien sûr) ne tentez jamais d'utiliser l'objet après qu'il soit détruit.
Certains considèrent cela comme un vilain hack, et de dire à quelqu'un qui vous écoute et qu'il devrait être évitée. On cite souvent des problème est la difficulté de veiller à ce que les objets de la classe ne sont jamais alloué dynamiquement. D'autres considèrent qu'il est parfaitement raisonnable de l'idiome, et de l'utiliser tout le temps. Personnellement, je suis quelque part au milieu: j'ai rarement l'utiliser, mais n'hésitez pas à le faire quand il semble être le bon outil pour le travail.
Edit: [le plus souvent en réponse à @Alexandre C commentaire]: la première fois que vous faites c'est avec un objet qui a une durée de vie qui est presque entièrement son propre. Un exemple James Kanze a cité l'une de facturation/système de suivi, il a travaillé pour une compagnie de téléphone. Fondamentalement, lorsque vous décrochez le téléphone, quelque chose prend note et crée un phone_call
objet. À partir de ce moment, l' phone_call
objet gère les détails de l'appel (d'une connexion lorsque vous composez, l'ajout d'une entrée dans la base de données-à-dire lorsque l'appel a commencé, éventuellement raccorder plus de gens, si vous effectuez un appel de conférence, etc.) Lorsque vous raccrochez, l' phone_call
objet est sa dernière tenue de la comptabilité (par exemple, ajoute une entrée à la base de données-à-dire lorsque vous avez raccroché, de sorte qu'ils peuvent calculer combien de temps votre appel), puis détruit lui-même. La durée de vie de l' phone_call
objet est basé sur lorsque vous décrochez/raccrochez le téléphone -- du point de vue du reste du système, en gros, c'est totalement arbitraire, de sorte que vous ne pouvez pas attacher à tout portée lexicale dans le code, ou quoi que ce soit sur cet ordre.
Pour quelqu'un qui pourrait se soucient de fiabilité de ce type de codage peut être: si vous faites un appel téléphonique à, partir de, ou à travers presque toutes les parties de l'Europe, il y a une très bonne chance que c'est d'être manipulé (au moins en partie) par le code qui fait exactement cela.