Maison > développement back-end > C++ > Quand est-il acceptable d'appeler explicitement un destructeur en C ?

Quand est-il acceptable d'appeler explicitement un destructeur en C ?

Susan Sarandon
Libérer: 2024-10-29 03:51:02
original
308 Les gens l'ont consulté

 When is it Okay to Explicitly Call a Destructor in C  ?

Appels explicites de destructeur : quand et pourquoi

En général, les appels explicites de destructeur ne sont pas recommandés en C . Cependant, des exceptions existent, comme illustré dans la section 13.4.5 de la norme C 11 :

<code class="cpp">template<class T> struct A {
    ~A();
};

void f(A<int>* p, A<int>* q) {
    p->A<int>::~A();      // OK: destructor call
    q->A<int>::~A<int>(); // OK: destructor call
}</code>
Copier après la connexion

Dans cet exemple, les appels explicites au destructeur sont autorisés car les objets en question ont été créés en utilisant le placement new. Pour détruire de tels objets, vous devez appeler explicitement leurs destructeurs.

Au-delà de la suppression de placement, il existe peu de raisons légitimes d'appeler explicitement un destructeur. Une possibilité consiste à détruire manuellement un objet trivialement destructible, bien que cela ne soit pas particulièrement utile.

Note supplémentaire

Une exception couramment citée à la règle consistant à éviter les appels explicites de destructeur concerne les variables locales. Cependant, ce n’est pas exact ; vous ne devez pas appeler explicitement des destructeurs sur des variables locales.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal