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

Que signifie « = delete » dans les déclarations de fonctions C ?

Barbara Streisand
Libérer: 2024-11-22 19:59:16
original
386 Les gens l'ont consulté

What does

Comprendre la signification de "= delete" dans les déclarations de fonction

En C 11, la syntaxe "= delete" est utilisée pour supprimer un fonction, empêchant efficacement son utilisation. Il est couramment utilisé pour interdire la copie ou pour restreindre certaines conversions.

Suppression des constructeurs de copie et des opérateurs d'affectation

Le cas d'utilisation le plus courant de "= delete" est peut-être de interdire la copie. Par exemple, si nous avons une classe appelée "my_class" que nous ne voulons pas copier, nous pouvons déclarer :

class my_class
{
public:
    ...
    my_class(const my_class &) = delete;
    ...
};
Copier après la connexion

Cette déclaration empêche le compilateur de générer un constructeur de copie et un opérateur d'affectation par défaut pour " my_class."

Prévenir les conversions indésirables

Une autre utilisation de "= delete" est pour interdire les conversions de types spécifiques. Par exemple, si nous avons une classe "Z" que nous voulons construire uniquement à partir de valeurs "long long", nous pouvons utiliser "= delete" pour empêcher les conversions de types plus petits :

struct Z
{
public:
    ...

    Z(long long);     // can initialize with a long long      
    Z(long) = delete; // but not anything less
};
Copier après la connexion

Modificateurs de fonctions supplémentaires

À part "= 0" (qui définit la fonction sur virtuel pur) et "= delete" (qui supprime la fonction), il n'y a pas d'autre fonction modificateurs en C . Cependant, d'autres mots-clés tels que "override" et "final" peuvent être utilisés pour modifier le comportement des fonctions virtuelles.

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