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!