Maison > développement back-end > C++ > Les types C intégrés ont-ils des constructeurs par défaut ?

Les types C intégrés ont-ils des constructeurs par défaut ?

Susan Sarandon
Libérer: 2024-12-16 05:18:13
original
549 Les gens l'ont consulté

Do Built-in C   Types Have Default Constructors?

Les types intégrés possèdent-ils des constructeurs par défaut ?

L'idée selon laquelle les types primitifs en C manquent de constructeurs a fait l'objet de débats. L'argument provient d'une compréhension erronée du terme « constructeur par défaut » et du comportement des types intégrés.

Constructeurs par défaut et initialisation de valeur

Les constructeurs par défaut sont fonctions membres qui initialisent les variables membres d'un objet lorsqu'aucune autre méthode d'initialisation n'est spécifiée. Curieusement, les types intégrés présentent un comportement similaire, ce qui conduit certains à supposer l'existence de constructeurs par défaut. Cependant, cette hypothèse est incorrecte.

Types intégrés : absence de constructeurs

Les types primitifs n'ont pas de constructeurs explicites au sens traditionnel. Au lieu de cela, ils subissent une initialisation de valeur, un processus qui leur attribue une valeur par défaut (par exemple, zéro pour int). Ce processus n'est pas un appel de constructeur ; il s'agit plutôt d'une opération définie par le langage.

Syntaxe et comportement : imitation des constructeurs

L'introduction d'une syntaxe d'initialisation uniforme dans C 11 a introduit la possibilité d'initialiser des types primitifs à l'aide de la syntaxe généralement utilisée pour les constructeurs (par exemple, int x{5}). Cette syntaxe crée l'illusion de l'utilisation du constructeur, mais il s'agit toujours d'une initialisation de valeur.

Clarification de Bjarne Stroustrup

Bjarne Stroustrup, le créateur de C , reconnaît ce flou conceptuel. Il suggère que les types intégrés « sont considérés comme ayant des constructeurs » en raison de leur comportement de type constructeur.

Conclusion

En conclusion, les types intégrés n'ont pas posséder des constructeurs par défaut au sens traditionnel. Leur processus d'initialisation, appelé initialisation de valeur, est un processus distinct qui imite le comportement des constructeurs. La syntaxe d'initialisation uniforme introduite dans C 11 obscurcit encore plus cette distinction, conduisant certains à attribuer à tort le comportement des types intégrés à la présence de constructeurs par défaut.

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