Les types intégrés ont-ils des constructeurs par défaut en C?
Malgré l'instruction de TC PL affirmant que les types intégrés ont des constructeurs par défaut, la réponse dans le contexte de C 03 est un nuanced "Non."
raisonnement
Les types intégrés n'ont pas déclaré les constructeurs au sens traditionnel. Cependant, ils peuvent être initialisés à l'aide d'une syntaxe qui ressemble aux appels de constructeur. Cette initialisation apparaît comme:
int x0(5); // Looks like a default constructor int x1{5}; // New syntax for default initialization
Bien que ces expressions imitent les appels de constructeur, ils invoquent en fait l'initialisation de la valeur. L'initialisation de la valeur est un mécanisme qui initialise les types primitifs aux valeurs par défaut déterminées par leur type.
Implications de la syntaxe d'initialisation
Bien que les types intégrés manquent de constructeurs explicites, la syntaxe d'initialisation crée l'illusion de constructeurs par défaut. Ceci est particulièrement évident avec la nouvelle syntaxe pour zéro-initialisation:
int z0 = int(); // Appears like a default constructor int z1 = int{}; // New syntax for zero-initialization
These expressions behave similarly to default constructors, initializing variables to their default value (in this case, 0).
Bjarne Stroustrup's Clarification
When contacted regarding the apparent discrepancy in TC PL, Bjarne Stroustrup ont précisé que même si les types intégrés n'ont pas de constructeurs au sens conventionnel, ils sont conceptuellement considérés comme ayant des constructeurs basés sur leur comportement d'initialisation.
Conclusion
En C 03, les types intégrés ne possèdent pas techniquement des constructeurs par défaut. Néanmoins, leur syntaxe d'initialisation crée l'illusion de ces constructeurs, ce qui leur permet d'être initialisé comme s'ils le faisaient. Cette distinction met en évidence la nuance des mécanismes d'initialisation de C et la flexibilité de sa syntaxe.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3