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 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!