3 votes

Y a-t-il un intérêt à affecter NULL à un pointeur après l'avoir supprimé dans le destructeur en C++ ?

Éventuel doublon:
Vaut-il la peine de définir des pointeurs sur NULL dans un destructeur?

Je vois un code comme ça,

void ClassA::~ClassA()
{

delete member;
member = NULL;

}

car l'instance particulière n'existe plus après ce destructeur (ou l'instance est détruite et ses membres ne peuvent plus être utilisés ou déréférencés), quelle est l'utilité d'assigner NULL au pointeur de la variable membre?

Est-ce simplement une pratique issue de la suppression d'un pointeur ailleurs et de son assignation à NULL?

4voto

Jonathan Leffler Points 299946

C'est assez futile - l'espace ne sera pas réutilisé avant d'être réalloué.

1voto

Mehrdad Points 70493

C'est inutile pour la publication du code, mais potentiellement utile pour le débogage.

0voto

gatopeich Points 474

Je ne vois aucune raison de mettre à jour des données qui sont déjà hors de portée, et ce n'est PAS une bonne pratique de faire des choses "au cas où". En tout état de cause, ne suivez pas les "bonnes pratiques" aveuglément, il vaut mieux comprendre pourquoi vous faites les choses que d'être le pratiquant le plus fervent de la religion des "bonnes pratiques".

-2voto

davogotland Points 1985

Oui, c'est juste une bonne pratique. cela aide à ne pas oublier de définir des pointeurs sur null ailleurs ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X