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

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

DDD
DDDoriginal
2024-12-26 21:27:10437parcourir

Do Built-in Types in C   Actually Have Default Constructors?

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

La question s'est posée après avoir lu un article suggérant que int() donne 0 en raison d'une valeur par défaut constructeur, ce qui conduit à croire que les types primitifs manquent intrinsèquement de constructeurs. Cependant, la section 10.4.2 de « TC PL » implique le contraire, affirmant que les types intégrés possèdent des constructeurs par défaut.

Réponse de Bjarne Stroustrup

Lorsqu'on l'interroge sur la divergence apparente , Bjarne Stroustrup a précisé que les types intégrés n'ont pas d'appels de constructeur réels. Au lieu de cela, ils se comportent comme s'ils le faisaient, et la notation de type constructeur est interprétée par le compilateur.

Réponse technique

À proprement parler, non. Les types intégrés ne possèdent pas de constructeurs par défaut.

Considérations fonctionnelles

Malgré le manque de constructeurs réels, la syntaxe d'initialisation des types intégrés ressemble beaucoup à l'invocation du constructeur. L'utilisation d'accolades ({}) lors de l'initialisation permet l'initialisation à zéro des entiers (int{0}) et des copies d'expressions entre parenthèses (int a{b}).

Conclusion

Bien que les types intégrés n'aient pas de constructeurs par défaut, leur syntaxe d'initialisation et leur comportement imitent leur présence. Ils possèdent apparemment des constructeurs par défaut et par copie, permettant l'initialisation et l'attribution de valeurs. Ce mécanisme de pseudo-constructeur simplifie l'initialisation et favorise la lisibilité du code. Cependant, il est crucial de reconnaître que ces types manquent de véritables constructeurs.

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!

Déclaration:
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
Article précédent:Pourquoi le `Article suivant:Pourquoi le `