Maison > développement back-end > C++ > le corps du texte

Pourquoi pouvons-nous supprimer un pointeur vers Const en C ?

Patricia Arquette
Libérer: 2024-11-03 09:29:03
original
882 Les gens l'ont consulté

Why Can We Delete a Pointer to Const in C  ?

Suppression d'un pointeur vers Const (T const*)

En C , c'est un fait connu que les fonctions membres non const ne peuvent pas être appelé à l'aide d'un pointeur const. Cependant, une exception courante est rencontrée lors de la suppression d'un pointeur vers const, même s'il appelle le destructeur de la classe, qui n'est pas une méthode const. Cette anomalie apparente soulève la question : pourquoi est-ce autorisé ?

La réponse réside dans le soutien à la nécessaire destruction d'objets. Lorsque des objets sont créés dynamiquement, il est essentiel de disposer d'un moyen de les supprimer, même s'ils sont const. Ceci est réalisé en autorisant la suppression des pointeurs const, malgré la restriction sur la modification des objets const.

Le code suivant démontre ce comportement :

<code class="cpp">// dynamically create object that cannot be changed
const Foo * f = new Foo;

// use const member functions here

// delete it
delete f;</code>
Copier après la connexion

Un autre exemple montre que ce comportement n'est pas limité aux objets créés dynamiquement :

<code class="cpp">{
 const Foo f;
 // use it
} // destructor called here</code>
Copier après la connexion

Si les destructeurs ne pouvaient pas être appelés sur des objets const, cela interdirait entièrement l'utilisation d'objets const. Cette allocation assure la bonne destruction des objets, quel que soit leur statut const.

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